洛谷 P1194 飞扬的小鸟 题解
这道题是一道隐藏的比较深的DP(我太蒟蒻了!)
设f[i][j]表示到第i列时高度为j的最少步数是多少;
求上升时的方案就是一个完全背包!,求下降时的方案就是一个01背包;
然后处理边界就能A掉;
#include <bits/stdc++.h>
using namespace std;
int n,m,k;
int up[],down[];
int low[],top[],bo[];
int f[][];
int main()
{
cin>>n>>m>>k;
for(register int i=;i<=n;i++){
scanf("%d%d",&up[i],&down[i]);
low[i]=;
top[i]=m;
}
for(register int i=;i<=k;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
bo[a]=;
low[a]=b+;
top[a]=c-;
}
memset(f,0x3f,sizeof(f));
for(register int i=;i<=m;i++){
f[][i]=;
}
for(register int i=;i<=n;i++){
for(register int j=up[i]+;j<=m+up[i];j++){
f[i][j]=min(f[i][j-up[i]]+,f[i-][j-up[i]]+);
}
for(register int j=m+;j<=m+up[i];j++){
f[i][m]=min(f[i][m],f[i][j]);
}
for(register int j=;j<=m-down[i];j++){
f[i][j]=min(f[i-][j+down[i]],f[i][j]);
}
for(register int j=;j<low[i];j++){
f[i][j]=f[][];
}
for(register int j=top[i]+;j<=m;j++){
f[i][j]=f[][];
}
}
int ans=f[][];
for(register int i=;i<=m;i++){
ans=min(ans,f[n][i]);
}
if(ans<f[][]){
cout<<""<<endl;
cout<<ans<<endl;
}
else{
cout<<""<<endl;
int i,j;
for(i=n;i>=;i--){
for(j=;j<=m;j++){
if(f[i][j]<f[][]){
break;
}
}
if(j<=m){
break;
}
}
ans=;
for(int j=;j<=i;j++){
if(bo[j]) ans++;
}
cout<<ans;
}
}
洛谷 P1194 飞扬的小鸟 题解的更多相关文章
- 洛谷 P1941 飞扬的小鸟
洛谷 P1941 飞扬的小鸟 原题链接 首先吐槽几句 noip都快到了,我还不刷起联赛大水题! 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节 ...
- [洛谷P1941] 飞扬的小鸟
洛谷题目链接:飞扬的小鸟 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了 ...
- Codevs 3729==洛谷P1941 飞扬的小鸟
P1941 飞扬的小鸟 456通过 2.4K提交 题目提供者该用户不存在 标签动态规划2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 Flappy Bird 是一 ...
- [NOIP2014] 提高组 洛谷P1941 飞扬的小鸟
题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便 ...
- 洛谷 P1941 飞扬的小鸟 (NOIP 2014)
题面 题解 背包细节题,wa了一片,上升的过程我们可以看做一个完全背包(多重背包好像跑不过去),下降 过程是一个0/1背包,为了避免冲突应该先跑多重,先跑0/1就有可能产生这个点又上升又下降的 非法情 ...
- 2018.11.06 洛谷P1941 飞扬的小鸟(背包)
传送门 上升看成完全背包. 下降看成01背包. 注意边界转移就行了. 代码: #include<bits/stdc++.h> using namespace std; inline int ...
- 洛谷P1941 飞扬的小鸟 [noip2014] 背包
正解:背包 解题报告: 话说好久没做背包的题了,都有些陌生了?这几天加强基础题目多刷点儿dp和背包趴qwq 其实这题是95...然后我下了我错的那个测试点,我答案是9874正解是9875...然后读入 ...
- 洛谷P1941 飞扬的小鸟(背包 dp)
题意 题目链接 Sol 很显然的dp,设\(f[i][j]\)表示第\(i\)个位置,高度为\(j\)的最小步数 向上转移的时候是完全背包 向下转移判断一下就可以 #include<bits/s ...
- 洛谷P1941飞扬的小鸟——细节DP
题目:https://www.luogu.org/problemnew/show/P1941 此题主要注意许多细节,详见代码. 代码如下: #include<iostream> #incl ...
随机推荐
- POJ 1149 猪圈买猪 建图太强大!! 没有透彻领悟 慢慢消化
PIGS Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 19575 Accepted: 8948 Description ...
- classpath说明
概念解释: classpath : 即项目中WEB-INF下面的classes目录; 应用: [01] src路径下的文件在编译后会放到WEB-INF/classes路径下.默认的classpath是 ...
- html5 代码画兰博基尼跑车,6不6你说的算!
源代码下方 由于本人喜爱html5,无聊所画: 画图需要掌握; 1.画布,画笔,画圆,给画笔添加颜色.(注:掌握这几点,你就可以称霸画图界了.) 虽然没有画画天赋,但代码写的也是溜溜滴!(注:此图没有 ...
- microsoft office 2010 visio激活
office2010 tookit这款绿色的软件进行Visio2010激活 http://jingyan.baidu.com/article/4f34706ecae169e387b56dd1.html
- ltelliJ IDEA 创建Maven web项目无src目录的解决方案
https://blog.csdn.net/xiaoke815/article/details/72810976 一.缘由 这几天闲来无事,突然想试试IDEA这个编译器,之前一直都在用Eclipse ...
- Linux下kafka集群的搭建
上一篇日志已经搭建好了zookeeper集群,详细请查看:http://www.cnblogs.com/lianliang/p/6533670.html,接下来继续搭建kafka的集群 1.首先下载k ...
- linux系统基础优化及高级操作命令
Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ifconfig 查询.设置网卡和 ...
- Linux常用命令及操作(第二弹)
Ctrl l清屏 Ctrl d关闭终端 Ctrl Alt T打开终端 pwd 查看当前的目录 Shift Ctrl C复制 Shift Ctrl V粘贴 Shift Ctrl N打开新的终端 F11 ...
- hdfs、zookeepeer之HA模式
HA简介 1.所谓HA,即高可用(high available) 2.消除单点故障,避免集群瘫痪,hdfs中namenode保存了整个集群的元数据,如果namenode所在机器宕机,则整个集群瘫痪,H ...
- du和df目录大小不一致
最近遇到个问题 df查看基本没有空间了 但是查找大文件 也基本没有 ,原来是之前的大文件删除了 没有生效导致的 用如下命令,查找到相关进程ID 然后kill就行了 lsof | grep delete ...