DP优化

原题:

LHX教主很能跳,因为Orz他的人太多了。教主跳需要消耗能量,每跳1米就会消耗1点能量,如果教主有很多能量就能跳很高。
教主为了收集能量,来到了一个神秘的地方,这个地方凡人是进不来的。在这里,教主的正上方每100米处就有一个能量球(也就是这些能量球位于海拔100,200,300……米处),每个能量球所能提供的能量是不同的,一共有N个能量球(也就是最后一个能量球在N×100米处)。教主为了想收集能量,想跳着吃完所有的能量球。教主可以自由控制他每次跳的高度,接着他跳起把这个高度以下的能量球都吃了,他便能获得能量球内的能量,接着吃到的能量球消失。教主不会轻功,教主不会二段跳,所以教主不能因新吃到的能量而变化此次跳跃的高度。并且教主还是生活在地球上的,所以教主每次跳完都会掉下来。
问教主若要吃完所有的能量球,最多还能保留多少能量。

N≤2000000

保证对于所有数据,教主都能吃到所有的能量球,并且能量球包含的能量之和不超过2^31-1。

sum[i]表示a[i]的前缀和,很容易推出状态转移方程:f[i]=max{j<i && f[j]>=i*100 | f[j]+sum[i]-sum[j]-i*100}

但是数据达到2000000,n^2会T,这是后就要优化

DP优化方法有很多,常用的是记录可行决策然后二分,单调队列,斜率优化,我这么弱斜率优化当然不会,这题似乎不符合单调性质,所以我们搞单调队列

上面的状态转移方程↑中sum[i]-i*100是不会变的,需要考虑的就是f[j]-sum[j]

就可以维护单调队列:如果f[i]>f[队头]就进队,f[j]<i*100的出对,然后在队里找就行了

然而依旧会T

书上说f[i]-s[i]单调递减的,过程比较长,有兴趣的同学可以试着自己推到(逃

又因为i*100是单调递增的,所以只需要记录一个temp表示上一个用到的决策点,从temp往后找到一个f[j]>=i*100就行了

因为f[j]-sum[j]单调递减且i*100单调递增,所以如果有f[j]>=i*100的f[j]>=(i-1)*100也肯定满足,因此从直接从temp开始找就行了,不用管temp前面的

单调性这种东西给数据打个表比较容易发现,优化DP时打个表挺好的

代码;

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 using namespace std;
 7 int read(){int z=0,mark=1;  char ch=getchar();
 8     while(ch<'0'||ch>'9'){if(ch=='-')mark=-1;  ch=getchar();}
 9     while(ch>='0'&&ch<='9'){z=(z<<3)+(z<<1)+ch-'0';  ch=getchar();}
10     return z*mark;
11 }
12 int n,m,a[2100000];
13 int sum[2100000];
14 int f[2100000];
15 int temp;
16 int main(){//freopen("ddd.in","r",stdin);
17     memset(f,0,sizeof(f));
18     cin>>n>>m;
19     sum[0]=0;
20     for(int i=1;i<=n;i++){  a[i]=read();  sum[i]=a[i]+sum[i-1];}
21     f[0]=m;  temp=0;
22     for(int i=1;i<=n;i++){
23         for(;temp<i;temp++)if(f[temp]>=i*100)  break;
24         f[i]=f[temp]+sum[i]-sum[temp]-i*100;
25     }
26     cout<<f[n]<<endl;
27     return 0;
28 }

View Code

转载于:https://www.cnblogs.com/JSL2018/p/5861687.html

【P1326】超级教主相关推荐

  1. [JZOJ P1327] [DP]订货

    啊这是一道省选题,怪不得我不会写,最重要的是战胜自己的内心要坚信你会写出来,恩. 用f[i][j]来表示前i个月还有j吨货的费用,就是依靠 上一月的费用+上一月的货的存费+订需要的+订(j-k)的费用 ...

  2. 2017.10.28闵神讲课DAY1

    OMG 我辛辛苦苦打的笔记被吃掉了 只能转载我们涵神的了 反正我们写的差不多 附上涵神原文:传送门 背景 搜索到DP的过渡 搜索的艰辛 记忆化出现了 DP的基础 DP的实现方法 例题 题面 分析 再谈 ...

  3. 「AI大咖」ML宗师乔教主,全世界最有影响力的计算机科学家

    https://www.toutiao.com/a6708713546558997004/ 在AI领域,可以称为教父的人不多,一眼我们看向"深度学习鼻祖"Hinton教授,另一眼一 ...

  4. 【AI大咖】ML宗师乔教主,Science评选的全世界最有影响力的计算机科学家

    在AI领域,可以称为教父的人不多,一眼我们看向"深度学习鼻祖"Hinton教授,另一眼一定会望向"机器学之父"乔丹乔教主.今天带你领略一下机器学习领域的&quo ...

  5. 《超级女声》新增 9月4日 娱乐无极限 回顾超女专辑(都是超女) [共39G的精品]

    喜欢的就赶紧去吧! 下面是用户共享的文件列表,安装eMule后,您可以点击这些文件名进行搜索 [个人剪辑][周笔畅]超级女声周笔畅普通朋友(50进20).rmvb 2.8MB [个人剪辑][周笔畅]超 ...

  6. Primecoin成为VSYS超级节点 融入VSYS生态圈

    根据vsysrate.com网站数据,Primecoin正式成为VSYS超级节点.数日前,Sunny King在peercoin论坛发帖描述了此事. 根据Sunny King所述,Primecoin融 ...

  7. OSChina 周四乱弹 ——颜值和Cup不能兼得 对么教主。

    2019独角兽企业重金招聘Python工程师标准>>> [今日歌曲推荐] @OSC叶童 : 我要点歌,梦醒时分 梁静茹. <梦醒时分>- 梁静茹 手机党少年们想听歌,请使 ...

  8. 漏洞全史——听TK教主讲那过去的故事

    要说黑客界的"名媛",非TK莫属,早年他曾经夺魁微软安全挑战赛,得到十万美金大奖:还不遗余力地在黑客圈内传播日本先进影视文化,可用色艺双绝来形容之.然而,这些都是往事,现在的TK作 ...

  9. UVA 11752 超级幂

    UVA 11752 超级幂 Z - The Super Powers Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & ...

最新文章

  1. STL中istream_iterator和ostream_iterator的基本用法
  2. NLM 公布了一个新的重新设计的 PubMed 数据库
  3. 【linux系统】maven安装
  4. 联通和阿里云合作 试点打通全国IT系统
  5. 深入理解Java虚拟机(类文件结构)
  6. php读取dxf,分享个DXF转G代码的实例
  7. python多个main方法_Python,main方法未运行(同一文件中有多个类)
  8. js优化工具:ECMAScript Cruncher
  9. node.js 针对不同的请求路径(url) 做出不同的响应
  10. jquery. Validator验证框架ajax返回json数据
  11. Nancy之Cache的简单使用
  12. jQuery or YUI3 ?
  13. 智能楼宇一卡通系统QY-LY04A
  14. arduino编译失败_保存后,Arduino代码将无法编译
  15. chromium双核浏览器实现
  16. 金融理财产品后台原型|Axure原型
  17. H3C模拟器如何连接SecureCRT8.7
  18. 图片浏览器java程序_图片浏览器用java实现
  19. 华为手机无法安装ADB和HDB的处理
  20. 关于5G手机,你想知道的都在这里了-千氪

热门文章

  1. 网络教育计算机二级题库2021,2021计算机二级office
  2. python中insert()函数的用法_Python list insert()用法及代码示例
  3. 多生产者_多线程必考的「生产者 - 消费者」模型,看齐姐这篇文章就够了
  4. cesium雷达图_20个简化开发任务的 JavaScript库
  5. 什么是Servlet?
  6. 006_全局异常处理器
  7. R语言acres92 region_《R语言实战》读书笔记-- 第六章 基本图形
  8. 福建高职单招计算机基础知识,福建高职单招计算机类试题及标准答案
  9. 评价算法的性能从利用计算机资源角度,计算机专业数据结构课后练习题汇编
  10. envi矢量图层外面有蓝色边框_晒晒装完的新房,头次见全屋浅蓝背景墙,加石膏线边框,温馨别致...