洛谷 P1725 琪露诺
洛谷 P1725 琪露诺
题目描述
在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子i时,她只会移动到i+L到i+R中的一格。你问为什么她这么移动,这还不简单,因为她是笨蛋啊。每一个格子都有一个冰冻指数A[i],编号为0的格子冰冻指数为0。当琪露诺停留在那一格时就可以得到那一格的冰冻指数A[i]。琪露诺希望能够在到达对岸时,获取最大的冰冻指数,这样她才能狠狠地教训那只青蛙。但是由于她实在是太笨了,所以她决定拜托你帮它决定怎样前进。开始时,琪露诺在编号0的格子上,只要她下一步的位置编号大于N就算到达对岸。
输入输出格式
输入格式:
第1行:3个正整数N, L, R
第2行:N+1个整数,第i个数表示编号为i-1的格子的冰冻指数A[i-1]
输出格式:
一个整数,表示最大冰冻指数。保证不超过2^31-1
输入输出样例
输入样例#1:
5 2 3
0 12 3 11 7 -2
输出样例#1:
11
说明
对于60%的数据:N <= 10,000
对于100%的数据:N <= 200,000
对于所有数据 -1,000 <= A[i] <= 1,000且1 <= L <= R <= N
思路:
这题很容易想到需要DP思想,每跳到一个格子k,它当前的冰冻指数最优为max(dp [k-r~k-l])+a[k]。
题解:
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
int a[500000];
int dp[500000];
priority_queue<int>q1,q2;//q1记录当前最大值,q2记录不能达到的状态
int main()
{int n,l,r;scanf("%d%d%d",&n,&l,&r);for(int i=0;i<=n;i++){scanf("%d",&a[i]);dp[i]=a[i];}for(int i=n-l;i>=0;i--){int x1=0,x2=0;q1.push(dp[i+l]);//下一步 if(i+r<n){q2.push(dp[i+r+1]);//下一步走不到终点 }if(q2.empty()){x1=q1.top();}if(!q2.empty()){x1=q1.top(),x2=q2.top();}while(x1==x2&&!q2.empty()){x1=q1.top(); x2=q2.top();q1.pop(); q2.pop();}if(i+r>n){dp[i]=max(dp[i],dp[i]+x1);//下一步能跳到终点 }else{dp[i]+=x1;//走不到,推过去 }}printf("%d",dp[0]);return 0;
}
洛谷 P1725 琪露诺相关推荐
- 洛谷P1725琪露诺【单调队列+dp】
题目描述 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河岸去追 ...
- 洛谷 - P1725 琪露诺(动态规划+单调队列优化)
题目链接:点击查看 题目大意:给出一个由n个节点组成的数轴,每个点上都有一个权值,现在规定当在点x处时,下一步只能去[x+l,x+r]之间的任意一点,现在规定终点是点n之后的所有节点,现在问如何规划路 ...
- 【洛谷】【动态规划+单调队列】P1725 琪露诺
[题目描述:] 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河 ...
- 【动态规划】洛谷 P1282 多米诺骨牌
[动态规划]洛谷 P1282 多米诺骨牌 时间限制: 1 Sec 内存限制: 128 MB 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下 ...
- 洛谷P1282 多米诺骨牌 题解
洛谷P1282 多米诺骨牌 题解 题目链接:P1282 多米诺骨牌 题意: 多米诺骨牌由上下 222 个方块组成,每个方块中有 1∼61\sim61∼6 个点.现有排成行的上方块中点数之和记为 S1S ...
- 东方幻想乡系列模拟赛T2琪露诺题解
题目地址: http://fzoj.xndxfz.com/JudgeOnline/problem.php?id=2146&csrf=17peCLMJM49glhqlg9KaD7Agf5o5QY ...
- UESTC 1808 琪露诺的算术教室 打表+特判(找规律)
题目 琪露诺是个聪明的精灵,她非常擅长和数字有关的游戏 . 直到有一天灵梦进入了迷雾深林,她遇见了琪露诺,并向她提出了一个问题. 统计n个一位数字a组成的数乘以一位数b的结果中有多少个一位数字d.不超 ...
- 洛谷 P1242 新汉诺塔
原题链接 题目描述 设有n个大小不等的中空圆盘,按从小到大的顺序从1到n编号.将这n个圆盘任意的迭套在三根立柱上,立柱的编号分别为A.B.C,这个状态称为初始状态. 现在要求找到一种步数最少的移动方案 ...
- 【01背包】洛谷P1282多米诺骨牌
题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...
- 洛谷p1282多米诺骨牌
题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...
最新文章
- PAT(甲级)2020年春季考试 7-4 Replacement Selection
- 一步一步学习hadoop(七)
- python下什么-什么是Python?最全的python百科
- 欧拉路径 之 poj 2513 Colored Sticks
- .Net Core 环境安装
- error C2471和error C1083
- vue 筛选组件_记一个复杂组件(Filter)的从设计到开发
- css-样式的权重-圆角-rgba
- 蚂蚁森林:不存在网友反馈的“没有造林”的情况 干旱造成梭梭矮小
- GDAL读写矢量文件——Python
- Adsutil.vbs 在脚本攻击中的妙用
- 39种语言编写的Hello World程序
- 胶囊碰撞体(CapsuleCollider)
- ae万能弹性表达式_18种常用AE表达式解析【建议收藏】
- 大牛直播十万个为什么
- Python终端美化库Rich
- 试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
- 轮子王-原创数据结构-V2.0--内存//二级指针//小样儿练习
- 【移动架构】Flutter vs React Native:最后一句话。
- python工程师的职业规划_一名Python开发工程师的职业规划
热门文章
- 我国大部地区遭罕见寒潮 23省区应急响应
- 凉宫春日的忧郁第二章
- JVM的垃圾回收Serial、Serial Old、Parallel Scavenge、Parallel Old的介绍和STW(Stop The World)
- 80个让你笑爆肚皮的程序员段子,不好笑算我输!
- 超越YOLOv4-tiny!YOLObile:移动设备上的实时目标检测 [左侧有码]
- 第六十一章 方法关键字 - Deprecated
- 装linux双系统有什么好处,科学网—Windows和Linux双系统安装教程 - 戴劭勍的博文...
- 根据程序流程图化程序流图_程序流程图有什么用?简单实用的流程图模板大全...
- web前端期末大作业—— HTML+CSS豪华车 (9页)
- C语言笔记 隐藏光标函数 带注释(详细)