洛谷 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 ...
随机推荐
- CSS的 背景属性
㈠背景色 background-color ⑴background-color 属性设置元素的背景颜色. ⑵元素背景的范围: background-color 属性为元素设置一种纯色.这种颜色会填充 ...
- Eclipse中注释乱码解决办法
问题描述:将别人的Java工程导入自己的工作空间之后,有时候会出现注释乱码问题. 这是由于IDE对汉字的编码方式不同造成的.比如,原来的开发人员使用的是UTF-8编码方式,而现在开发人员使用的IDE使 ...
- AngularJS基础语法
1.ng-app 决定了angularjs的作用域范围,你可以如下使用: <html ng-app> … </html> 来让angularjs渲染整个页面,也可以使用 < ...
- 微信支付(公众号)爬坑记,包含 total_fee 失败和 JSAPI 签名验证失败等等
做商城类网站不免会需要做支付功能,目前在中国大陆通用的做法就是使用支付宝支付和微信支付,上一篇博文已经讲个支付宝支付. 这篇文章来讲一讲微信支付,微信支付的方式有很多种,本文主要讲 JSAPI 支付的 ...
- dataX调优
dataX调优 标签(空格分隔): ETL 一,Datax调优方向 DataX调优要分成几个部分(注:此处任务机指运行Datax任务所在的机器). 1,网络本身的带宽等硬件因素造成的影响: 2,Dat ...
- sqli-labs(38)
0X01 ?id=' and 1=1%23 正确 ?id=1' and 1=2%23 错误 存在注入 0x1 堆叠注入讲解 (1)前言 国内有的称为堆查询注入,也有称之为堆叠注入.个人认为称之为堆叠注 ...
- Java常考面试题整理(三)
明天又要去面试,Good luck to me.,让我在这段时间换个新的工作吧. 41.在Java中,对象什么时候可以被垃圾回收? 参考答案: 当对象对当前使用这个对象的应用程序变得不可触及的时候,这 ...
- SpringBoot 使用定时任务动态执行任务
import com.patient.core.adapter.CorsFilter; import org.mybatis.spring.annotation.MapperScan; import ...
- Java并发编程之java.util.concurrent包下常见类的使用
一,Condition 一个场景,两个线程数数,同时启动两个线程,线程A数1.2.3,然后线程B数4.5.6,最后线程A数7.8.9,程序结束,这涉及到线程之间的通信. public class Co ...
- 关于虚拟机中Linux系统无法上网之后的解决方案
我刚刚安装好虚拟机上的Linux的时候,宿主机网络正常,但虚拟机中虽然显示网络连接正常,但无法上网,因此我打开了网络设置 这是默认设置,但上不了网,而按照网上的查找结果,选择NAT是没错的,但仅限于w ...