题面

这道题是一道隐藏的比较深的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 飞扬的小鸟 题解的更多相关文章

  1. 洛谷 P1941 飞扬的小鸟

    洛谷 P1941 飞扬的小鸟 原题链接 首先吐槽几句 noip都快到了,我还不刷起联赛大水题! 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节 ...

  2. [洛谷P1941] 飞扬的小鸟

    洛谷题目链接:飞扬的小鸟 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了 ...

  3. Codevs 3729==洛谷P1941 飞扬的小鸟

    P1941 飞扬的小鸟 456通过 2.4K提交 题目提供者该用户不存在 标签动态规划2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录   题目描述 Flappy Bird 是一 ...

  4. [NOIP2014] 提高组 洛谷P1941 飞扬的小鸟

    题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便 ...

  5. 洛谷 P1941 飞扬的小鸟 (NOIP 2014)

    题面 题解 背包细节题,wa了一片,上升的过程我们可以看做一个完全背包(多重背包好像跑不过去),下降 过程是一个0/1背包,为了避免冲突应该先跑多重,先跑0/1就有可能产生这个点又上升又下降的 非法情 ...

  6. 2018.11.06 洛谷P1941 飞扬的小鸟(背包)

    传送门 上升看成完全背包. 下降看成01背包. 注意边界转移就行了. 代码: #include<bits/stdc++.h> using namespace std; inline int ...

  7. 洛谷P1941 飞扬的小鸟 [noip2014] 背包

    正解:背包 解题报告: 话说好久没做背包的题了,都有些陌生了?这几天加强基础题目多刷点儿dp和背包趴qwq 其实这题是95...然后我下了我错的那个测试点,我答案是9874正解是9875...然后读入 ...

  8. 洛谷P1941 飞扬的小鸟(背包 dp)

    题意 题目链接 Sol 很显然的dp,设\(f[i][j]\)表示第\(i\)个位置,高度为\(j\)的最小步数 向上转移的时候是完全背包 向下转移判断一下就可以 #include<bits/s ...

  9. 洛谷P1941飞扬的小鸟——细节DP

    题目:https://www.luogu.org/problemnew/show/P1941 此题主要注意许多细节,详见代码. 代码如下: #include<iostream> #incl ...

随机推荐

  1. POJ 1149 猪圈买猪 建图太强大!! 没有透彻领悟 慢慢消化

    PIGS Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19575   Accepted: 8948 Description ...

  2. classpath说明

    概念解释: classpath : 即项目中WEB-INF下面的classes目录; 应用: [01] src路径下的文件在编译后会放到WEB-INF/classes路径下.默认的classpath是 ...

  3. html5 代码画兰博基尼跑车,6不6你说的算!

    源代码下方 由于本人喜爱html5,无聊所画: 画图需要掌握; 1.画布,画笔,画圆,给画笔添加颜色.(注:掌握这几点,你就可以称霸画图界了.) 虽然没有画画天赋,但代码写的也是溜溜滴!(注:此图没有 ...

  4. microsoft office 2010 visio激活

    office2010 tookit这款绿色的软件进行Visio2010激活 http://jingyan.baidu.com/article/4f34706ecae169e387b56dd1.html

  5. ltelliJ IDEA 创建Maven web项目无src目录的解决方案

    https://blog.csdn.net/xiaoke815/article/details/72810976 一.缘由 这几天闲来无事,突然想试试IDEA这个编译器,之前一直都在用Eclipse ...

  6. Linux下kafka集群的搭建

    上一篇日志已经搭建好了zookeeper集群,详细请查看:http://www.cnblogs.com/lianliang/p/6533670.html,接下来继续搭建kafka的集群 1.首先下载k ...

  7. linux系统基础优化及高级操作命令

    Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ifconfig 查询.设置网卡和 ...

  8. Linux常用命令及操作(第二弹)

    Ctrl l清屏 Ctrl d关闭终端 Ctrl Alt T打开终端 pwd 查看当前的目录 Shift Ctrl C复制 Shift Ctrl V粘贴 Shift Ctrl N打开新的终端 F11 ...

  9. hdfs、zookeepeer之HA模式

    HA简介 1.所谓HA,即高可用(high available) 2.消除单点故障,避免集群瘫痪,hdfs中namenode保存了整个集群的元数据,如果namenode所在机器宕机,则整个集群瘫痪,H ...

  10. du和df目录大小不一致

    最近遇到个问题 df查看基本没有空间了 但是查找大文件 也基本没有 ,原来是之前的大文件删除了 没有生效导致的 用如下命令,查找到相关进程ID 然后kill就行了 lsof | grep delete ...