题目:https://www.luogu.org/problemnew/show/P1941

dp。只是dp而已。作为自中午考试爆炸而阴郁的一下午一晚上中一点的慰藉。

滚动数组每次赋初值在这道题中变成了一种方便。处理障碍只需要将上一阶段对应位置赋成 INF 就行了。

注意降下来的那种情况得在完全背包运行完了之后再考虑。不然就可能同一阶段即下降又上升。

还有就是顶层可转移来的状态多些。全程都是不能触及到第0行的。

#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
const long long INF=0x7fffffff;
int n,m,k,x[10005],y[10005],uj[10005],dj[10005],p,h,l,cnt;
bool zh[10005];
long long d[2][1005],ans=INF;
void pan(int i)
{bool flag=0;for(int j=0;j<=m;j++)if(d[i%2][j]!=INF){flag=1;break;}if(flag)return;printf("0\n%d",cnt);exit(0);
}
int main()
{scanf("%d%d%d",&n,&m,&k);for(int i=0;i<n;i++)scanf("%d%d",&x[i],&y[i]);for(int i=1;i<=k;i++){scanf("%d%d%d",&p,&l,&h);zh[p]=1;dj[p]=l;uj[p]=h;}for(int i=1;i<=n;i++){
//        printf("i=%d\n",i);bool flag=0;for(int j=0;j<=m;j++)d[i%2][j]=INF;if(zh[i-1]){flag=1;for(int j=0;j<=dj[i-1];j++)d[(i-1)%2][j]=INF;for(int j=uj[i-1];j<=m;j++)d[(i-1)%2][j]=INF;}for(int j=x[i-1]+1;j<=m;j++){d[i%2][j]=min(d[i%2][j],min(d[(i-1)%2][j-x[i-1]]+1,d[i%2][j-x[i-1]]+1));
//            printf("  d[%d]=%d\n",j,d[i%2][j]);
        }for(int j=m-x[i-1]+1;j<=m;j++){d[i%2][m]=min(d[i%2][m],min(d[(i-1)%2][j]+1,d[i%2][j]+1));
//            printf("  d[%d]=%d\n",j,d[i%2][j]);
        }int ll=m-y[i-1];for(int j=1;j<=ll;j++){d[i%2][j]=min(d[i%2][j],d[(i-1)%2][j+y[i-1]]);
//            printf("  d[%d]=%d\n",j,d[i%2][j]);
        }pan(i);if(flag)cnt++;}for(int i=1;i<=m;i++)ans=min(ans,d[n%2][i]);printf("1\n%lld",ans);return 0;
}

转载于:https://www.cnblogs.com/Narh/p/8480741.html

洛谷1941飞扬的小鸟相关推荐

  1. 洛谷P1941 飞扬的小鸟

    P1941 飞扬的小鸟 链接:https://www.luogu.org/problemnew/show/P1941 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击 ...

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

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

  3. 洛谷 P1941 飞扬的小鸟

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

  4. Luogu 1941 飞扬的小鸟

    题目链接:https://www.luogu.org/problemnew/show/P1941 思路: 这是一道极好的背包练习题. 容易地发现,我们可以把上升的过程与有限制的完全背包联系,下降的过程 ...

  5. 洛谷 飞扬的小鸟(混合背包,细节)

    题目链接: [NOIP2014 提高组] 飞扬的小鸟 - 洛谷 思路: 表示到达(i, j)点最少需要的跳跃次数.每个 f 值根据上一个对应位置,加上这一次的跳跃/下降得到. 计算完所有 f 值之后, ...

  6. Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)

    Luogu 1941 [NOIP2014]飞扬的小鸟 (动态规划) Description Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...

  7. P1941 [NOIP2014 提高组] 飞扬的小鸟

    题目来源 [NOIP2014 提高组] 飞扬的小鸟 - 洛谷 题目考点 动态规划,dp    枚举,暴力    背包 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点 ...

  8. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  9. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

最新文章

  1. c语言头文件中定义inline static相关函数的优劣
  2. 廖雪峰python教程百度云-廖雪峰Python教程的配套视频教程,全套完整版!
  3. 《数字图像处理》 笔记
  4. 学好单片机必须要了解的的8个电路设计
  5. 天猫11.11:搜索引擎实时秒级更新(转载)
  6. 如何关闭默认浏览器检查
  7. C雨涵课后习题(18)
  8. 34Linux日期指令
  9. 极简主义APP界面UI设计实例模板,不简单!
  10. python语言中strike_基于Python的XSS测试工具XSStrike使用方法
  11. 小学计算机教案 插入艺术字,小学信息技术《在幻灯片中插入艺术字》说课及反思...
  12. matlab命令及海洋作图
  13. 黑苹果alc269声卡仿冒id_AppleALC仿冒声卡驱动alc269优化版(Lenovo Z580亲测)
  14. nginx中$host、$http_host和$proxy_host区别
  15. 为什么现在很多人不看好商汤科技?
  16. Hdu 1240 Asteroids题解
  17. 【if,elseif,if else区别】看这一篇就够了
  18. 微信摇一摇插件ios_iOS开发——全局响应MotionEvent(微信摇一摇)
  19. 笔记本固态硬盘和普通硬盘的区别
  20. 【计算机网络】知识点整理 第四章 网络层(王道考研视频学习记录)

热门文章

  1. [Spark][翻译]Spark 架构: Shuffle过程分析
  2. 理解Java中的弱引用(Weak Reference)
  3. CAS (3) —— Mac下配置CAS客户端经代理访问Tomcat CAS
  4. 慎用uniapp开发商业级应用
  5. windows禁用/启用hyper-V,解决hyper-V与模拟器同时启用时造成冲突
  6. ECharts x时间轴不连续实现
  7. [笔记]何为Linux及其文件系统(四)
  8. Android被忽略的tools
  9. Sublime配置C和C++编译运行环境
  10. JSTL fn:split()函数