1010 [HNOI2008]玩具装箱toy
斜率优化dp;
推荐学习http://www.cnblogs.com/perseawe/archive/2012/05/12/bz1010.html
看着别人的题解自己学着推,终于理解了
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
#define maxn 50005
using namespace std; int q[maxn],head=,tail=;
ll f[maxn];
ll g[maxn],s[maxn];
ll dp[maxn]; ll get_g(int k,int j,int c)
{
return dp[k]+(f[k]+c)*(f[k]+c)-dp[j]-(f[j]+c)*(f[j]+c);
} ll get_s(int k,int j)
{
return *(f[k]-f[j]);
} int main()
{
int n,m,xx;
scanf("%d%d",&n,&m);
for(int i=; i<=n; i++)
{
scanf("%d",&xx);
f[i]+=f[i-]+xx;
}
for(int i=; i<=n; i++)f[i]+=i;
int c=+m;
q[tail++]=;
for(int i=;i<=n;i++)
{
while(head<tail-&&get_g(q[head+],q[head],c)<=f[i]*get_s(q[head+],q[head]))++head;
int v=q[head];
dp[i]=dp[v]+(f[i]-f[v]-c)*(f[i]-f[v]-c);
q[tail++]=i;
for(int j=tail-;j>head;j--)
{
int cc=q[j+];
int bb=q[j];
int aa=q[j-];
if(get_g(bb,aa,c)*get_s(cc,bb)>=get_g(cc,bb,c)*get_s(bb,aa))
q[j]=q[--tail];
else break;
}
}
printf("%lld\n",dp[n]);
return ;
}
1010 [HNOI2008]玩具装箱toy的更多相关文章
- BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 9812 Solved: 3978[Submit][St ...
- BZOJ 1010: [HNOI2008]玩具装箱toy 斜率优化DP
1010: [HNOI2008]玩具装箱toy Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再 ...
- bzoj 1010 [HNOI2008]玩具装箱toy(DP的斜率优化)
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 7874 Solved: 3047[Submit][St ...
- BZOJ 1010 [HNOI2008]玩具装箱toy
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 7184 Solved: 2724[Submit][St ...
- 1010: [HNOI2008]玩具装箱toy(斜率优化)
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 12280 Solved: 5277[Submit][S ...
- Bzoj 1010: [HNOI2008]玩具装箱toy(斜率优化)
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定 ...
- BZOJ 1010: [HNOI2008]玩具装箱toy(斜率优化dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1010 题意: 思路: 容易得到朴素的递归方程:$dp(i)=min(dp(i),dp(k)+(i-k ...
- 【BZOJ】1010: [HNOI2008]玩具装箱toy(dp+斜率优化)
http://www.lydsy.com/JudgeOnline/problem.php?id=1010 蛋疼用latex写了份题解.. 2015.03.07 upd:很多东西可能有问题,最好看下边提 ...
- 1010: [HNOI2008]玩具装箱toy [dp][斜率优化]
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
- BZOJ 1010: [HNOI2008]玩具装箱toy | 单调队列优化DP
原题: http://www.lydsy.com/JudgeOnline/problem.php?id=1010 题解: #include<cstdio> #include<algo ...
随机推荐
- 关于JFace中的右键菜单Action类,ActgionGroup类,MenuManager类
Action类,ActionGroup类,MenuManager类介绍 SWT中菜单是Menu类,在前面章节中已经介绍过Menu类的使用. 菜单项用MeauItem类来实现.但是在实际开发中,同一种功 ...
- [phpmyadmin] phpmyadmin select command denied to user
phpmyadmin 在查看一个数据库中Table的数据的时候,会提示 select command denied to user 在Ubuntu下,我是使用重装Phpmyadmin的方式解决的 卸载 ...
- Android Studio如何显示行号
Android Studio默认没有显示行号,很多同学在使用中很不习惯.本经验介绍怎样让Android Studio显示行号. 首先我们打开我们下载安装好的Android Studio 然后右击工具按 ...
- RDLC打印或导出Word的 分页设置 页边距和页面大小
RDLC 导出Word的时候发现,Word的尺寸和页边距有问题,查了MSDN看到这样一段话 Page Sizing When the report is rendered, the Word page ...
- eclipse项目文件编码格式和项目不一致的修改方法
eclipse导入了一个项目,并把其属性设置成了UTF-8,但是打开里面的文档之后,发现还是乱码,看了下属性,发现文档竟然还是GBK的编码 于是就百度了下,发现了解决方法,现在和大家分享下,希望能帮到 ...
- php嵌入html的解析过程
php嵌入html的解析过程 示例: 执行过程: 首先明确:PHP是分段读取一次执行(编译),JS是分段读取分段执行 程序就是对内存的操作 函数可以先调用后定义,原因,程序的执行时 ...
- Build Error 6041: Internal build error
Note: Following content is reprinted from the Original article Flexera : Build Error 6041. Only for ...
- 《C#入门典》
这本书算是我读的第一本关于.NET的书. 上大学的时候,教我们课的老师经常给我们安利"Wrox红皮书",说这是程序员写给程序员的书,有很高的参考价值. 这本书的电子版,有1000多 ...
- I/O继承关系图
InputStream/OutputStream继承关系图
- HDOJ 1422 重温世界杯 -- 动态规划
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1422 Problem Description 世界杯结束了,意大利人连本带利的收回了法国人6年前欠他们 ...