【UOJ 17】飞扬的小鸟
UOJ 17
题意:在\(n\times m\)的网格中有一些柱子,它们可以通过的区间是\((L_i,R_i)\),位置在\(P_i\)。在第i个位置点击一次会使高度增加\(X_i\),不点击会使高度减少\(Y_i\)。可以重复点击,效果叠加。问最少需要多少次点击来通过这个游戏。或者输出最多能通过的柱子个数。
思路:考虑\(dp(i,j)\)表示到了\((i,j)\)这个点的最少点击次数。
然后转移方程如下:\(dp(i,j)=min dp(i-1,j-kX_{i-1})+k,dp(i-1,j+Y_{i-1})\)。
但是这肯定只能拿\(70pts\)。
所以我们需要进行一些优化。我们记\(min dp(i-1,j-kX_{i-1})+k\)为\(g(i,j)\),那么转移分为两步:
\(dp(i,j)=min(g(i,j),dp(i-1,j+Y_{i-1})\)
\(g(i,j)=min(g(i,j-X_{i-1}), dp(i-1,j-X_{i-1}))+1\)
然后就好了。
其实根本不用这样想,我们只需要这样转移:
首先从小到大枚举\(j\),对于每一个\(j\)更新\(dp(i+1,j+X_i)\)为\(min(dp(i,j),dp(i+1,j))+1\);
然后从小到大(其实这里无所谓)枚举\(j\),对于每一个\(j\)更新\(dp(i+1,j)\)为\(dp(i,j+Y_i)\)。
这样肯定是对的,因为所有的\(dp(i,j)\)都更新到了\(dp(i+1,j+X_i)\),然后又随着\(dp(i+1,j+X_i)\)到了\(dp(i+1,j+2X_i)...\)。
然后需要注意我们的答案在取的时候不要\(dp(i,j)=\infty\)的也取进去。。。
【UOJ 17】飞扬的小鸟的更多相关文章
- UOJ #17. 【NOIP2014】飞扬的小鸟 背包DP
#17. [NOIP2014]飞扬的小鸟 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4902 Solved: 1879 题目连接 http:// ...
- 洛谷 P1941 飞扬的小鸟
洛谷 P1941 飞扬的小鸟 原题链接 首先吐槽几句 noip都快到了,我还不刷起联赛大水题! 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节 ...
- P1907飞扬的小鸟
P1907飞扬的小鸟 描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或 ...
- [codevs3729]飞扬的小鸟
[codevs3729]飞扬的小鸟 试题描述 输入 输出 输出文件名为 bird.out. 共两行. 第一行,包含一个整数,如果可以成功完成游戏,则输出 1,否则输出 0. 第二行,包含一个整数,如果 ...
- Codevs 3729==洛谷P1941 飞扬的小鸟
P1941 飞扬的小鸟 456通过 2.4K提交 题目提供者该用户不存在 标签动态规划2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 Flappy Bird 是一 ...
- NOIP2014 飞扬的小鸟
3. 飞扬的小鸟 (bird.cpp/c/pas) [问题描述] Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的 ...
- Codevs 3729 飞扬的小鸟
飞扬的小鸟 标签 动态规划 NOIp提高组 2014 难度 提高+/省选- 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小 ...
- [NOIP2014][DP]飞扬的小鸟
[NOIP2014]飞扬的小鸟 ——!x^n+y^n=z^n 题目描述: Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画 ...
- Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
Luogu 1941 [NOIP2014]飞扬的小鸟 (动态规划) Description Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...
随机推荐
- java - 并发编程易错实例
生产者消费者问题 https://juejin.im/post/5aeec675f265da0b7c072c56 notify()发生在wait()之前会怎么样?怎么处理? wati()等待条件的变化 ...
- UdPloyer交付系统设计思路
宏观愿景: 一键搞定项目依赖环境,将软件交付过程管理化,实现DevOps研发测试运维一体化. 一.一站式版本交付生命周期管理 业务线[私有权限] 1.SVN源码交付 合主干.版本归档.拉分支.版本回 ...
- Python全栈学习_day006作业
Day6作业及默写 ,使用循环打印以下效果: : * ** *** **** ***** : ***** **** *** ** * : * *** ***** ******* ********* . ...
- 《.NET之美》之程序集
一.什么是程序集(Assembly)? 经由编译器编译得到的,供CLR进一步编译执行的那个中间产物,在WINDOWS系统中,它一般表现为·dll或者是·exe的格式,但是要注意,它们跟普通意义上的WI ...
- 【代码笔记】Web-利用Dreamweaver实现form
一,打开Dreamweaver---->File---New---->如下图所示.选择HTML,点击OK. 二,会出现如下图所示界面.把光标放到Body处. 三,将上面的栏切换到Desig ...
- SoapUI 访问代理设置
SoapUI 访问代理设置 by:授客 QQ:1033553122 问题描述: 运行SoapUI时,发现接口访问不通,如下图,提示"Connection to http://127.0.0. ...
- LyX快捷键管理
快捷键修改:Tools->Preference->Editing->Shortcuts:修改后要Tools->Reconfig生效 快捷键默认保存文件:%appdata%\Ly ...
- Kotlin入门(5)字符串及其格式化
上一篇文章介绍了数组的声明和操作,包括字符串数组的用法.注意到Kotlin的字符串类也叫String,那么String在Java和Kotlin中的用法有哪些差异呢?这便是本文所要阐述的内容了. 首先要 ...
- MySQL中MyISAM与InnoDB区别及选择
InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少行DELETE 表时,是一行一行的删除InnoDB 把数据和索引存放在表空间 ...
- 转:更改SQLServer实例默认字符集
需求 安装数据库时,将字符集安装成了“SQL_Latin1_General_CP1_CI_AS”,现在需要将其更改为“Chinese_PRC_CI_AS”. 方法 重新生成系统数据库 ,然后还原配 ...