题目链接

琪露诺

解题思路

单调队列优化的\(dp\)。
状态转移方程:\(f[i]=max{f[i-l],f[i-l+1],...,f[i-r-1],f[i-r]}+a[i]\)
考虑单调队列优化。
因为刚学,不是很熟悉单调队列,特写一篇详细的解释。
\(queue\) 数组存储一个队列,他的头部和尾部的下标分别用head和tail表示。
\(f\) 数组是\(dp\)用到的数组。
首先读入每一个坐标处的价值\(a[i]\)
枚举\(i\),从\(l\)到\(n\),分别计算\(f[i]\),当\(i+r>n\)时,存储最大值ans。
单调队列的注释写在代码中。

AC代码

#include<stdio.h>
int i,n,l,r,a[200010],f[200010],ans=-2147483648;//这个题数据比较水,ans=0也能过,但理论上是不允许这样的
int queue[200010],head=0,tail=-1;
int main(){scanf("%d%d%d",&n,&l,&r);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=l;i<=n;i++){while(head<=tail&&queue[head]+r<=i)head++;//如果头太靠前了,那就删掉while(head<=tail&&f[queue[tail]]<=f[i-l])tail--;//如果尾巴对应的a太小了,那就删掉//这两句保证了单调队列的不上升也即单调减特性,保证头永远是当前状态的最佳状态queue[++tail]=i-l;//存储上一次是从哪里来的f[i]=a[i]+f[queue[head]];//从上一步跳过来,跳到这里的最大值if(i>n-r&&f[i]>ans)ans=f[i];}printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/Potassium/p/9903755.html

P1725 琪露诺 题解(单调队列)相关推荐

  1. 洛谷P1725琪露诺【单调队列+dp】

    题目描述 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河岸去追 ...

  2. 洛谷 - P1725 琪露诺(动态规划+单调队列优化)

    题目链接:点击查看 题目大意:给出一个由n个节点组成的数轴,每个点上都有一个权值,现在规定当在点x处时,下一步只能去[x+l,x+r]之间的任意一点,现在规定终点是点n之后的所有节点,现在问如何规划路 ...

  3. 【洛谷】【动态规划+单调队列】P1725 琪露诺

    [题目描述:] 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河 ...

  4. 东方幻想乡系列模拟赛T2琪露诺题解

    题目地址: http://fzoj.xndxfz.com/JudgeOnline/problem.php?id=2146&csrf=17peCLMJM49glhqlg9KaD7Agf5o5QY ...

  5. UESTC 1808 琪露诺的算术教室 打表+特判(找规律)

    题目 琪露诺是个聪明的精灵,她非常擅长和数字有关的游戏 . 直到有一天灵梦进入了迷雾深林,她遇见了琪露诺,并向她提出了一个问题. 统计n个一位数字a组成的数乘以一位数b的结果中有多少个一位数字d.不超 ...

  6. 【DP、线段树优化】琪露诺

    跟去年(2017)PJ第四题几乎是一样的?/吐血 DP方程可以很简单的推出来,f[i]=max{f[k]}+a[i] 然而这样做是O(n^2)的 看一下数据,200000的话要不nlogn 要不n 由 ...

  7. 区间划定最小值题解--单调队列

    滑动窗口求区间最小值–单调队列 题目如下----转自洛谷 题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若 ...

  8. 琪露诺学习Vue.js的第二天

    道德三皇五帝, 功名夏后商周, 五霸七雄闹春秋, 顷刻兴亡过首. 青史几行名姓, 北茫无数荒丘, 前人撒种后人收, 无非是龙争虎斗! 事件修饰符 1.使用  .stop  阻止冒泡 <div c ...

  9. BIT琪露诺的完美算法教室 3.初上征途的za

    题目背景 励志成为全宇宙第一的口袋妖怪大师(咦?)的za终于要踏上了他的旅程.za匆匆忙忙地从大木博士那里拿了几个精灵球,从关都地区的真新镇出发了.没走几步,za来到了神奇的皮卡丘森林,眼前躺满了琳琅 ...

  10. 单调队列-原理详解(deque实现)

    一.单调队列的概念: 单调队列,即单调递减或单调递增的队列. 二.单调队列的性质: 1.  队列中的元素在原来的列表中的位置是由前往后的(随着循环顺序入队). 2.  队列中元素的大小是单调递增或递减 ...

最新文章

  1. mysql 5.7编译安装重启_mysql5.7源码编译安装
  2. what should you do if you can be silent and do things
  3. VS中怎么新建Web服务器项目,VS中新建网站和新建WEB项目的区别
  4. Linux DHCP
  5. 这里有一份面筋请查收(二)
  6. 晚上去宾馆有什么是一定要带的?
  7. eyoucms内容添加发布
  8. spring-boot 整合redis作为数据缓存
  9. 秒杀项目(1)项目环境搭建
  10. 联想ghost重装系统_【一键ghost装系统教程】一键ghost重装系统_一键ghost安装教程...
  11. PowerDesigner下载安装教程
  12. 5G商用牌照的发放对物联网意味着什么
  13. ECSHOP整合第三方登录,QQ登录、新浪微博登录、支付宝登
  14. Typora最后的免费版本
  15. PageOffice常用功能之-OA系统中的文档在线编辑及流转
  16. 汇编语言:使用汇编程序计算2的8次方
  17. nyist 第二次招新赛 I 董学姐与朱学姐的爱恨情仇
  18. MySQL——使用mysqldump命令备份
  19. 代谢组学结果在线分析:不同组差异代谢物高级韦恩图Venn的绘制——UpSet图
  20. IDEA导入JUnit测试类

热门文章

  1. 流行的Spring Boot + Vue架构整合开发的网易云+QQ音乐(附源码)!
  2. “干活的干不过写PPT 的”:新东方年会神曲刷屏背后:这3点值得我们思考
  3. 2016阿里技术论坛,阿里技术大神的互联网趋势分享
  4. 为什么在Linux执行自己的程序要在前面加./
  5. 不知道这十项Linux常识,就别说自己玩过Linux!
  6. 微软最强命令行工具发布,强势霸榜GitHub
  7. 高并发架构系列:Redis并发竞争key的解决方案详解
  8. 线性回归 - LinearRegression - 预测糖尿病 - 量化预测的质量
  9. ThreadLocal总结(jdk1.8源码)
  10. db2官方SQLSTATE代码提示