洛谷 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 ...
随机推荐
- 暑假集训 #3div2 C Sequence 数字找规律
C. Sequence (64 Mb, 1 sec / test)Integer sequences are very interesting mathematical objects. Let us ...
- JS Module
JS Module Summary I. Why we need to use the Module? In the past, Javascript can execute independentl ...
- sqli-labs(39)
0X01 这关和38关一样 ?id= and =1 正确 ?id=1 and 1=2 错误 不需要闭合 构造语法 0X02 ?id=;insert into users values(,"z ...
- java取小数点后两位
package com.yonyou.sud.algorithm; import java.math.BigDecimal;import java.text.DecimalFormat;/*** ja ...
- css3 水纹效果(仿写阿里云)
效果图 什么也不说了,上代码. <!DOCTYPE html> <html> <head> <title>css3 水纹效果</title> ...
- Java连接MQTT服务-tcp方式
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- MongoDB数据库的基本操作命令
启动服务 net start mongodb 使用 登录本机mongodb Mongodb服务启动之后,打开命令行工具. 登录 mongo 127.0.0.1:27017 27017是mongodb的 ...
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
1. 摘要 作者提出了一系列应用于移动和嵌入式视觉的称之为 MobileNets 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络. 作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以 ...
- 浏览器端-W3School-JavaScript:JavaScript 事件参考手册
ylbtech-浏览器端-W3School-JavaScript:JavaScript 事件参考手册 1.返回顶部 1. JavaScript 事件参考手册 事件通常与函数配合使用,这样就可以通过发生 ...
- django路由的二级分发
基于二级分发设计url路由 path('index/', views.index), path('index/', ([ path('test01/', test01), path('test02/' ...