[NOIP2014]飞扬的小鸟 D1 T3 loj2500 洛谷P1941
分析:
这是一个DP,没什么好说的,细节很烦人。
DP[i][j]表示到第i个位置,高度为j点最少的次数。
转移:
当j=m时
k属于[m-h,m]都可以向DP[i][j]转移,即dp[i][j]=min(dp[i-1][k]+1);
当j!=m时
dp[i][j]=min{dp[i-1][j-h]+1,dp[i-1][j+p]};
剩下的就是细节问题,没有别的了,细节巨恶心...
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define N 1005
#define inf 1<<30
int n,m,K;
int f[N*10][N],dp[N*10][N];
int up[N*10],down[N*10],p[N*10];
struct node
{
int low,above;
}block[N*10];
int main()
{
scanf("%d%d%d",&n,&m,&K);
for(int i=0;i<n;i++)
{
scanf("%d%d",&up[i],&down[i]);
block[i].low=0;
block[i].above=m+1;
p[i]=0;
}
block[n].low=0,block[n].above=m+1;
for(int i=0;i<K;i++)
{
int x;
scanf("%d",&x);
scanf("%d%d",&block[x].low,&block[x].above);
p[x]=1;
}
p[n]=0;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
dp[i][j]=inf;
}
}
dp[0][0]=inf;
for(int i=1;i<=n;i++)
{
for(int j=up[i-1]+1;j<=m;j++)
{
if(j==m)
{
for(int k=m-up[i-1]+1;k<=m;k++)
{
dp[i][j]=min(dp[i][j],dp[i-1][k]+1);
dp[i][j]=min(dp[i][j],dp[i][k]+1);
}
}
dp[i][j]=min(dp[i][j],dp[i-1][j-up[i-1]]+1);
dp[i][j]=min(dp[i][j],dp[i][j-up[i-1]]+1);
}
for(int j=max(1,block[i].low+1);j<=min(m-down[i-1],block[i].above-1);j++)
{
dp[i][j]=min(dp[i][j],dp[i-1][j+down[i-1]]);
}
for(int j=block[i].low;j>=0;j--)
{
dp[i][j]=inf;
}
for(int j=block[i].above;j<=m;j++)
{
dp[i][j]=inf;
}
}
int ans=inf;
int num=K;
for(int i=n;i>=1;i--)
{
for(int j=block[i].low+1;j<=block[i].above-1;j++)
{
ans=min(ans,dp[i][j]);
}
if(ans<inf)
{
break;
}
if(p[i]==1)
{
num--;
}
}
if(num>=K)
{
printf("1\n%d\n",ans);
}
if(num<K)
{
printf("0\n%d\n",num);
}
return 0;
}
[NOIP2014]飞扬的小鸟 D1 T3 loj2500 洛谷P1941的更多相关文章
- LOJ2500 NOIP2014 飞扬的小鸟 【背包DP】*
LOJ2500 NOIP2014 飞扬的小鸟 LINK 题目大意就是说有n个柱子,在每一秒你可以选择不点下降高度y和点p次上升x∗p,若果当前位置加上x∗p大于上界m,就会停在m. 如果可以成功穿越所 ...
- 洛谷 P1941 飞扬的小鸟
洛谷 P1941 飞扬的小鸟 原题链接 首先吐槽几句 noip都快到了,我还不刷起联赛大水题! 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节 ...
- [NOIP2014]飞扬的小鸟[DP]
[NOIP2014]飞扬的小鸟 ——!x^n+y^n=z^n 题目描述: Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画 ...
- 【题解】洛谷P1941 [NOIP2014TG] 飞扬的小鸟(背包DP)
次元传送门:洛谷P1941 思路 从题意可知 在每个单位时间内 可以无限地向上飞 但是只能向下掉一次 所以我们可以考虑运用背包解决这道题 上升时 用完全背包 下降时 用01背包 设f[x][y]为在坐 ...
- [洛谷P1941] 飞扬的小鸟
洛谷题目链接:飞扬的小鸟 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了 ...
- Codevs 3729==洛谷P1941 飞扬的小鸟
P1941 飞扬的小鸟 456通过 2.4K提交 题目提供者该用户不存在 标签动态规划2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 Flappy Bird 是一 ...
- NOIP2014 飞扬的小鸟
3. 飞扬的小鸟 (bird.cpp/c/pas) [问题描述] Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的 ...
- [NOIP2014] 提高组 洛谷P1941 飞扬的小鸟
题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便 ...
- 洛谷P1941 飞扬的小鸟 [noip2014] 背包
正解:背包 解题报告: 话说好久没做背包的题了,都有些陌生了?这几天加强基础题目多刷点儿dp和背包趴qwq 其实这题是95...然后我下了我错的那个测试点,我答案是9874正解是9875...然后读入 ...
随机推荐
- C 标准库基础 IO 操作总结
其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Pyth ...
- 学习MQ(一) 感知
声明:我的文字里出现的MQ,如没有特殊指明,就是指的IBM的websphere MQ 以前对MQ一无所知! MQ是IBM websphere的系列产品之一,是很好的一个中间件产品.其实我对这列产品并不 ...
- 基础概念:Oracle数据库、实例、用户、表空间、表之间的关系
基础概念:Oracle数据库.实例.用户.表空间.表之间的关系 数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库 ...
- 信息化建设中的IT规划精要
IT规划在信息化建设中发挥着"定位"和"导航"的作用,IT规划理论方法更是博大精深,细细讲来,会成为IT版本的"一千零一夜".因此,本文以& ...
- 关于mysql保存数据的时候报问题分析 普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utstring value:'\xF0\x9F\x98\x82\xF0\x9F...' for ...
问题分析 普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战.避免 emoji 表情符号带来的问题 ...
- nginx 反向代理,支持跨域,前后分离
前端开发往往涉及到跨域问题,其中解决方案很多: 1.jsonp 需要目标服务器配合一个callback函数. 2.window.name+iframe 需要目标服务器响应window.name. 3. ...
- OO,OO以后,及其极限
1.什么是软件开发? 软件开发的过程就是人们使用各种计算机语言将人们关心的现实世界映射到计算机世界的过程: 现在的计算机的数学理论基础是由计算机的开山鼻祖,大名鼎鼎的图灵于1937年提出的图灵机模型. ...
- (译)WebRTC实战: STUN, TURN, Signaling
http://xiaol.me/2014/08/24/webrtc-stun-turn-signaling/ 原文:WebRTC in the real world: STUN, TURN and s ...
- HDU-5738
Eureka Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem D ...
- python笔记:#001#python简介
认识 Python 人生苦短,我用 Python -- Life is short, you need Python 目标 Python 的起源 为什么要用 Python? Python 的特点 Py ...