2017.5.8 飞扬的小鸟 失败总结
这个题明显n*m*m是过不了的,但想了一晚上也没有什么好的办法可以单次o(1);
后来才明白,原来题读错了,原来不止可以从不同阶段转移、、还可以同阶段转移、、、
完全被传统背包限制住了、这种题应该利用所有可利用的决策信息,
但是,这个题细节异常的多:
1、处理上升必须在处理下落以先,不然会导致同时进行下落与上升,不符题意
2、处理上升不止要在缝隙内,缝隙外的也要算(因为同阶段累加算的相当于是前缀和,这一阶段缝隙下端开始按的可能不止一次,所以每一个都要有值、)
要避开这些问题,一次通过,必须做到:
1、在写的时候注意决策的顺序
2、在写的时候注意打错问题
3、在写的时候注意你想的意义和代码的意义是否相符,每个语句是否完全实现了它的作用。
#include<iostream>
#include<cstdio>
using namespace std;
#include<cstring>
int cnt,i,j,k,n,m,f[2][300001],up[300001],down[300001],shang[300001],xia[300001],now,ans=1e9,x,y,z;
int main()
{scanf("%d%d%d",&n,&m,&k);for(i=1;i<=n;i++){scanf("%d%d",&up[i],&down[i]); shang[i]=m;xia[i]=1; }shang[0]=m;xia[0]=1;memset(f,0x7f,sizeof(f));for(i=1;i<=m;i++)f[now^1][i]=0;for(i=1;i<=k;i++){scanf("%d%d%d",&x,&y,&z);xia[x]=y+1;shang[x]=z-1; }for(i=1;i<=n;i++,now^=1){bool jieshu=1;for(j=1;j<=m;j++){ if(j-up[i]>=xia[i-1]&&j-up[i]<=shang[i-1])f[now][j]=min(f[now^1][j-up[i]]+1,f[now][j]); if(j-up[i]>=1)f[now][j]=min(f[now][j-up[i]]+1,f[now][j]);//每一个点都可以累加,无关缝隙,当前阶段下面的点是为上面 点击>=2 做准备 }for(z=0;z<=up[i]&&m-z>0;z++){if(m-z>=xia[i-1]&&m-z<=shang[i-1])f[now][m]=min(f[now][m],f[now^1][m-z]+1);f[now][m]=min(f[now][m],f[now][m-z]+1); } for(j=xia[i];j<=shang[i];j++){if(j+down[i]<=shang[i-1]&&j+down[i]>=xia[i-1])f[now][j]=min(f[now][j],f[now^1][j+down[i]]);}for(j=0;j<=2*m;j++){f[now^1][j]=1e9; }
// cout<<i<<":"<<endl;for(j=xia[i];j<=shang[i];j++){// cout<<j<<":"<<f[now][j]<<" ";if(f[now][j]<1e9)jieshu=0;}
// cout<<endl;if(jieshu==1){printf("0\n%d",cnt);//cout<<" "<<i<<" ";return 0;}if(xia[i]!=1||shang[i]!=m)++cnt;}for(i=1;i<=m;i++){ans=min(ans,f[now^1][i]); }printf("1\n%d",ans);
}
2017.5.8 飞扬的小鸟 失败总结相关推荐
- Star Way To Heaven (prim最小生成树) // [ NOIP提高组 2014]飞扬的小鸟(DP)
文章目录 T1:Star Way To Heaven 题目 题解 代码实现 T2:飞扬的小鸟 题目 题解 代码实现 T1:Star Way To Heaven 题目 小 w 伤心的走上了 Star w ...
- [DP]Luogu 2014NOIP提高组 飞扬的小鸟题解
2014NOIP提高组飞扬的小鸟题解 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一 ...
- Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
Luogu 1941 [NOIP2014]飞扬的小鸟 (动态规划) Description Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...
- 洛谷P1941 飞扬的小鸟
P1941 飞扬的小鸟 链接:https://www.luogu.org/problemnew/show/P1941 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击 ...
- Codevs 3729==洛谷P1941 飞扬的小鸟
P1941 飞扬的小鸟 456通过 2.4K提交 题目提供者该用户不存在 标签动态规划2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 Flappy Bird 是一款风 ...
- P1941 [NOIP2014 提高组] 飞扬的小鸟
题目来源 [NOIP2014 提高组] 飞扬的小鸟 - 洛谷 题目考点 动态规划,dp 枚举,暴力 背包 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点 ...
- NOIP2014 飞扬的小鸟
3. 飞扬的小鸟 (bird.cpp/c/pas) [问题描述] Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的 ...
- 2022.03.21飞扬的小鸟
2022.03.21飞扬的小鸟 (题目来源:https://www.luogu.com.cn/problem/P1941 ) 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不 ...
- 洛谷 P1941 飞扬的小鸟
题目链接 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上 ...
最新文章
- Apache Derby-02通过IJ简单操作DERBY
- 使用原生js写ajax
- 可扩展架构设计的三个维度
- linux服务器用哪个面板好,Linux服务器管理面板哪家比较好用?
- POJ-1707 Sum of powers bernoulli方程
- PHP程序构造,PHP程序员在做网站开发前对基本目录结构如何规划?
- shiro——SimpleAuthenticationInfo中的参数
- Spring Cloud Stream与RabbitMQ 消费者 消息分组
- java进行语法解析时已到达文件结尾_java进行语法解析时已到达文件结尾?
- 从零到百亿互联网金融架构发展史
- 【学习笔记】windows快捷键
- java 从视频里面提取音频 批量
- 讲座报名|美团无人机团队技术分享:大规模、高精度激光SLAM
- BIM用C语言编程,实现BIM技术的三个重要方面是()。A.BIM的建立B.BIM的应用C.BIM的管理D.BIM的粒度E.BIM的概念...
- 香港机房BGP线路有什么用
- 超休闲游戏潜龙在渊,《Catwalk Beauty》一鸣惊人
- Three_Level_NPC_Inverter:基于MATLAB Simulink的三电平中性点钳位(NPC)逆变器仿真模型
- 华为鸿蒙OS摄像头,华为海雀智能摄像头pro的上市 鸿蒙os生态不断在壮大
- 数字IC设计随笔之七(TCL脚本编程入门)
- 【连载】【FPGA黑金开发板】NIOSII那些事儿--USB主机模式(二十一)
热门文章
- Java虚拟机------JVM介绍
- Android笔记 一Android基础知识 摘自第一行代码Android
- Android笔记 定义意图过滤器intent- filter demo
- linux系统 date命令,linux系统 的 date命令
- js 加总数组中某一列_js根据对象数组中某一属性值,合并相同项,并对某一属性累加处理...
- android动画能超过父容器吗,Android中你不得不知道的动画知识 (一)
- HTML统计用户浏览页面时间,如何使用JS代码计算用户浏览页面的时间呢?
- linux ns机制,Linux内核API ns_to_timespec
- idea错误提示不明显_微信公众号扫一扫功能提示:10003 redirect_uri域名与后台配置不一致错误解决方案...
- python logger_牛逼!python中的logging模块居然这么好用!