bzoj 3830: [Poi2014]Freight【dp】
参考:https://blog.csdn.net/zqh_wz/article/details/52953516
妙啊
看成分段问题,因为火车只能一批一批的走(易证= =)设f[i]为到i为止的车都走完来回了,转移显然是
\]
然后题解说这个j的取值是单调的,所以单增维护就行了(但是不会证单调)
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1000005;
int n,s;
long long f[N],a[N];
int read()
{
int r=0,f=1;
char p=getchar();
while(p>'9'||p<'0')
{
if(p=='-')
f=-1;
p=getchar();
}
while(p>='0'&&p<='9')
{
r=r*10+p-48;
p=getchar();
}
return r*f;
}
int main()
{
n=read(),s=read();
for(int i=1;i<=n;i++)
a[i]=read(),f[i]=1e18;
sort(a+1,a+1+n);
for(int i=2;i<=n;i++)
a[i]=max(a[i],a[i-1]+1);
int j=0;
for(int i=1;i<=n;i++,j--)
while(j<i&&max(f[j]+i-j-1,a[i])+i-j-1+2*s<f[i])
f[i]=max(f[j]+i-j-1,a[i])+i-j-1+2*s,j++;
printf("%lld\n",f[n]);
return 0;
}
bzoj 3830: [Poi2014]Freight【dp】的更多相关文章
- [BZOJ 1025] [SCOI2009] 游戏 【DP】
题目链接:BZOJ - 1025 题目分析 显然的是,题目所要求的是所有置换的每个循环节长度最小公倍数的可能的种类数. 一个置换,可以看成是一个有向图,每个点的出度和入度都是1,这样整个图就是由若干个 ...
- bzoj 4247: 挂饰【dp】
bzoj上访问负下标会跑到奇怪的地方-- 其实可以滚动数组优化,但是我看能过就懒得改了 设f[i][j]为已经算了前i个挂饰,当前有j个空的钩子,转移就是f[i][j]=max(f[i-1][j],f ...
- bzoj 4606: [Apio2008]DNA【dp】
写题五分钟读题两小时系列-- 看懂题的话不算难,然而我去看了大佬的blog才看懂题-- 题目大意是:一个原字符串,其中有一种通配符,合法串的定义是这个串(不含通配符))可以匹配原串并且这个串最多分成k ...
- BZOJ 3039: 玉蟾宫【dp】
Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地.这片土地被分成N*M个格子,每个格子里写着'R'或者' ...
- bzoj 4584: [Apio2016]赛艇【dp】
参考:https://www.cnblogs.com/lcf-2000/p/6809085.html 设f[i][j][k]为第i个学校派出的赛艇数量在区间j内,并且区间j内共有k个学校的方案数 把数 ...
- Kattis - honey【DP】
Kattis - honey[DP] 题意 有一只蜜蜂,在它的蜂房当中,蜂房是正六边形的,然后它要出去,但是它只能走N步,第N步的时候要回到起点,给出N, 求方案总数 思路 用DP 因为N == 14 ...
- HDOJ 1423 Greatest Common Increasing Subsequence 【DP】【最长公共上升子序列】
HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Othe ...
- HDOJ 1501 Zipper 【DP】【DFS+剪枝】
HDOJ 1501 Zipper [DP][DFS+剪枝] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- HDOJ 1257 最少拦截系统 【DP】
HDOJ 1257 最少拦截系统 [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
随机推荐
- jxls使用模版导出Excel
/** * 使用模版导出Excel */ @SuppressWarnings({ "unchecked", "deprecation" } ...
- Codeforces 653D Delivery Bears【二分+网络流】
题目链接: http://codeforces.com/problemset/problem/653/D 题意: x个熊拿着相同重量的物品,从1号结点沿着路走到N号结点,结点之间有边相连,保证可以从1 ...
- 使用mysql-connector-java.jar连接MySql时出现:Error while retrieving metadata for procedure columns: java.sql.SQLException: Parameter/Column name pattern can not be NULL or empty.
错误如下: 程序实现的功能是调用一个存储过程,但是不认这个存储过程的参数. 原因是版本太高了,由于使用的是6.0.6版本的,改成5.1.38即可. POM配置如下: <!-- mysql-con ...
- HNU 12834 Thread Tree
递归输出即可了 #include<bits/stdc++.h> using namespace std; struct tree{ int dot; string s; } ...
- Hadoop架构设计、执行原理具体解释
1.Map-Reduce的逻辑过程 如果我们须要处理一批有关天气的数据.其格式例如以下: 依照ASCII码存储.每行一条记录 每一行字符从0開始计数,第15个到第18个字符为年 第25个到第29个字符 ...
- Office Adobe Acrobat把PDF转换为Word时候提示不支持的Type2字体怎么办
如下图所示,在使用Adobe Acrobat Pro9将PDF转换为Word的时候出现下面的错误 很简单,不要用Adobe Acrobat Pro9了,用Adobe Acrobat Pro X,还 ...
- POJ 1679 The Unique MST 推断最小生成树是否唯一
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22715 Accepted: 8055 D ...
- Zookeeper 3.4 官方文档翻译
说明 个人英语水平非常一般,理解可能有偏差,假设有翻译不恰当之处,请看官指点. 1.简单介绍 分布式系统就像动物园.当中每台server就像一仅仅动物,Zookeeper就像动物园管理员,协调.服务于 ...
- LoadRunner 中调用c函数生成随机字符串
Action() { int itera_num,rand_num,i; ]=""; char StrTable[]="abcdefghijklmnopqrstuvwxy ...
- C++常用的函数,好的博客文章整理,集锦
http://www.cnblogs.com/xianghang123/archive/2011/08/24/2152404.html c语言产生随机数的方法 http://blog.sina. ...