Petrozavodsk Winter Camp, Day 8, 2014, Ship
$dp(i,j)$表示i~j这段还没运走时的状态,包括 运输了多少次,还剩多少空间
每次枚举运输左边还是右边转移
#include <bits/stdc++.h>
#define rep(i, j, k) for (int i = int(j); i <= int(k); ++ i)
#define dwn(i, j, k) for (int i = int(j); i >= int(k); -- i)
using namespace std;
typedef pair<int, int> P;
const int N = 1e4 + ;
P dp[][N];
int w[N]; int main() {
int n, t;
scanf("%d%d", &t, &n);
rep(i, , n) scanf("%d", w + i); P tmp;
auto Enlarge = [&](P &a, P &b) {
if (a.first == -) a = b;
else {
if (a.first > b.first || (a.first == b.first && a.second < b.second)) a = b;
}
};
for (int i = ; i <= n; ++ i) dp[(n & )][i].first = -;
dp[(n & )][] = P(, );
dwn(l, n, ) { // i, j 之间还没消去
int cur = l & , next = cur ^ ;
// cout << l << ' ' << dp[cur][3].first << ' ' << dp[cur][3].second << '\n';
for (int i = ; i <= n; ++ i) dp[next][i].first = -;
for (int i = ; i + l - <= n; ++ i)
if (dp[cur][i].first != -) {
int j = i + l - ;
// 选第i个
if (w[i] <= dp[cur][i].second) {
tmp = P(dp[cur][i].first, dp[cur][i].second - w[i]);
Enlarge(dp[next][i + ], tmp);
}
else {
tmp = P(dp[cur][i].first + , t - w[i]);
Enlarge(dp[next][i + ], tmp);
}
// 选第jge
if (w[j] <= dp[cur][i].second) {
tmp = P(dp[cur][i].first, dp[cur][i].second - w[j]);
Enlarge(dp[next][i], tmp);
}
else {
tmp = P(dp[cur][i].first + , t - w[j]);
Enlarge(dp[next][i], tmp);
} }
}
// cout << dp[0][3].first << ' ' << dp[0][3].second << '\n';
int ans = ;
for (int i = ; i <= n; ++ i)
if (dp[][i].first != -)
ans = min(ans, dp[][i].first);
printf("%d\n", ans); }
/*
4 5
1 1 3 1 2
*/
Petrozavodsk Winter Camp, Day 8, 2014, Ship的更多相关文章
- Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet
一个地图上有若干障碍,问允许出现一个障碍的最大子矩形为多大? 最大子矩形改编 #include<bits/stdc++.h> using namespace std; #define re ...
- Petrozavodsk Winter Camp, Day 8, 2014, Fine Brochures
1的个数-块的个数+多减的个数+flag 多减的只会在一个循环末尾出现 #include <bits/stdc++.h> using namespace std; #define rep( ...
- Petrozavodsk Winter Camp, Day 8, 2014, Second Trip
给你一棵树,每次询问一个(a,b),问有多少有路径与a-b没有交集 找lca #include <bits/stdc++.h> using namespace std; #define r ...
- Petrozavodsk Winter Camp, Day 8, 2014, Mosaic
给你三个数字a,b,c,让你用1-m的数字凑出来 结论:有2个1和2个2肯定凑不出来,然后就搜索 #include <bits/stdc++.h> using namespace std; ...
- Petrozavodsk Winter Camp, Day 8, 2014, Rectangle Count
给一个n*m的格点图,问其中有多少个矩形? $ \sum_{x=1}^{nm} \sum_{ab=x} [a + b \leq n](n - a - b + 1)\sum_{cd=x} [c + d ...
- Petrozavodsk Winter Camp, Andrew, 2014, Dichromatic Trees
条件: 1:每个红色节点的儿子都是黑色节点 2.每个叶子到根路径上的黑点数相等,等于某个常数,称作树的black height 求给定black height和节点数的符合条件的方案数 $black_ ...
- Petrozavodsk Winter Camp, Andrew, 2014, Bipartite Bicolored Graphs
由i个点和j个点组成的二分图个数为 $3^{ij}$,减去不联通的部分得到得到由i,j个点组成的联通二分图个数 $g_{i,j} = 3_{ij} - \sum_{k=1}^i \sum_{l=0}^ ...
- 2018 Petrozavodsk Winter Camp, Yandex Cup
A. Ability Draft solved by RDC 60min start, 148 min AC, 1Y 题意:两只 Dota 队伍,每队 \(n\) 个英雄,英雄一开始无技能,他们需要按 ...
- 2019 Petrozavodsk Winter Camp, Yandex Cup C. Diverse Singing 上下界网络流
建图一共建四层 第一层为N个歌手 第二层为{pi,li} 第三层为{si,li} 第四层为M首歌 除了S和第一层与第三层与T之间的边为[1,INF] 其他边均为[0,1] #include<bi ...
随机推荐
- nginx 阻止非自己域名解析到服务器
server模块加入 default_server server { listen 80 default_server; return 403; # return 301 https://$serve ...
- IO流(一)
一.异常 概述 异常就是Java程序在运行过程中出现的错误. 由来 问题也是现实生活中一个具体事务,也可以通过java的类的形式进行描述,并封装成对象.其实就是Java对不正常情况进行描述后的对象体现 ...
- Java内存区域与内存溢出异常(JVM学习系列1)
相对于C.C++等语言来说,Java语言一个很美好的特性就是自动内存管理机制.C语言等在申请堆内存时,需要malloc内存,用完还有手动进行free操作,若程序员忘记回收内存,那这块内存就只能在进程退 ...
- js获取url指定参数值
function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...
- web开发前端面试知识点目录整理
web开发前端面试知识点目录整理 基本功考察 关于Html 1. html语义化标签的理解; 结构化的理解; 能否写出简洁的html结构; SEO优化 2. h5中新增的属性; 如自定义属性data, ...
- python3 短网址和数字的相互转换的代码
下面内容是关于python3 短网址和数字的相互转换的内容. import mathimport decimal def convert_to_code(num): """ ...
- 解决jmeter中文乱码的三种方法
1.在Jmeter中的Http请求中,在内容编码后填入“utf-8”. 2.在本地文件存储Jmeter的bin目录下,修改jmeter.properties文件. (1)用记事本打开jmeter.pr ...
- jQuery实现input框输入值动态搜索
我们在平时的前端开发中,经常会遇到添加数据,如果在添加之前要指定某个用户或对象进行关联,那在实现上要比普通的添加要繁琐一点.我本来的想法是给一个iframe,在 里面显示所有的数据并提供一个筛选的功能 ...
- 2、每日复习点--ConcurrentHashMap vs HashMap vs LinkedHashMap vs HashTable
HashMap: 查询和插入速度极快,但是线程不安全,在多线程情况下在扩容的情况下可能会形成闭环链路,耗光cpu资源. LinkedHashMap: 基本和HashMap实现类似,多了一个链表来维护元 ...
- 使用nginx代理kibana并配置登录验证
由于kibana不支持登录验证,谁都可以访问,放到公网就不合适了,这里配置用nginx进行代理: 生成密码文件 如果安装了httpd可以用htpasswd,比较方便: htpasswd -c /roo ...