飞扬的小鸟(NOIP2014)(丧病DP题)
刚开始我还以为这道题目非常的简单。。
然后随便打了一个DP,直接WA,被zxyer狠狠地D了一顿。
然后发现有好多细节。。
首先假如某横坐标没有管子,那么l[x]=0;h[x]=m+1;
然后DP的时候往上是完全背包,往下是01背包。
由于不能接触到管子,所以0~l[x]和h[x]~m要设值inf方便下面判断。
m-max(q)*x[i]~m也要特判,因为有限高。。
最后统计答案也是很醉、。、
下面贴代码。。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define inf ((1<<31)-2)
using namespace std;
int f[][];
int n,m,k,ans;
int x[],y[];
int l[],h[];
int main(){
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<n;i++)
scanf("%d%d",&x[i],&y[i]);
for(int i=;i<=n;i++)
l[i]=,h[i]=m+;
for(int i=;i<=k;i++)
{
int p1,l1,h1;
scanf("%d%d%d",&p1,&l1,&h1);
l[p1]=l1;h[p1]=h1;
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)f[i][j]=inf;
f[][]=inf;
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
if(j>=x[i-])
{
f[i][j]=min(f[i][j],f[i-][j-x[i-]]+);
f[i][j]=min(f[i][j],f[i][j-x[i-]]+);
}
if(j==m)
{
for(int k=j-x[i-];k<=m;k++)
{
f[i][j]=min(f[i][j],f[i-][k]+);
f[i][j]=min(f[i][j],f[i][k]+);
}
}
}
for(int j=l[i]+;j<h[i];j++)
if(j+y[i-]<=m)
f[i][j]=min(f[i][j],f[i-][j+y[i-]]);
for(int j=;j<=l[i];j++)
f[i][j]=inf;
for(int j=h[i];j<=m;j++)
f[i][j]=inf;
}
int cnt=k,ans=inf;
for(int i=n;i>=;i--)
{
for(int j=l[i]+;j<h[i];j++)
if(f[i][j]<inf) ans=min(ans,f[i][j]);
if(ans!=inf)break;
if(h[i]<=m)cnt--;
}
if(cnt==k)
printf("1\n%d\n",ans);
else
printf("0\n%d\n",cnt);
return ;
}
飞扬的小鸟(NOIP2014)(丧病DP题)的更多相关文章
- 洛谷P1941 飞扬的小鸟 [noip2014] 背包
正解:背包 解题报告: 话说好久没做背包的题了,都有些陌生了?这几天加强基础题目多刷点儿dp和背包趴qwq 其实这题是95...然后我下了我错的那个测试点,我答案是9874正解是9875...然后读入 ...
- [NOIP2014][DP]飞扬的小鸟
[NOIP2014]飞扬的小鸟 ——!x^n+y^n=z^n 题目描述: Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画 ...
- UOJ #17. 【NOIP2014】飞扬的小鸟 背包DP
#17. [NOIP2014]飞扬的小鸟 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4902 Solved: 1879 题目连接 http:// ...
- LOJ2500 NOIP2014 飞扬的小鸟 【背包DP】*
LOJ2500 NOIP2014 飞扬的小鸟 LINK 题目大意就是说有n个柱子,在每一秒你可以选择不点下降高度y和点p次上升x∗p,若果当前位置加上x∗p大于上界m,就会停在m. 如果可以成功穿越所 ...
- 刷题总结——飞扬的小鸟(NOIP2014提高组)
题目: 题目背景 NOIP2014 提高组 Day1 试题. 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面 ...
- [NOIP2014]飞扬的小鸟[DP]
[NOIP2014]飞扬的小鸟 ——!x^n+y^n=z^n 题目描述: Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画 ...
- 垃圾陷阱 && [NOIP2014 提高组] 飞扬的小鸟
#include<bits/stdc++.h> using namespace std; int d,n,dp[1010]; struct node{int t,f,h;} a[1010] ...
- 【NOIP2014】【洛谷1941】【CJOJ1672】飞扬的小鸟
题面 描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话, ...
- Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
Luogu 1941 [NOIP2014]飞扬的小鸟 (动态规划) Description Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...
随机推荐
- Flask初学者:蓝图Blueprint
蓝图这个名字好像就是根据单词Blueprint字面意思来,跟平常我们理解的蓝图完全挂不上钩,这里蓝图就是指Blueprint. 使用蓝图的好处是可以将不同功能作用的视图函数/类视图放到不同的模块中,可 ...
- C++ 十进制 八进制 十六进制的转换和关系
在默认情况下,cout以十进制格式显示整数,而不管这些整数在程序中是如何书写的.如下面的程序所示: #include<iostream> using namespace std; #inc ...
- PHP.TP框架下商品项目的优化2-图片优化
图片存储.上传.显示优化 1.图片路径写进配置文件,当路径有变动时[因业务扩大,服务器存储图片空间不足等],只需修改配置文件,而不用修改代码 2.封装显示.上传.删除函数,实现代码重用 [可类比其他类 ...
- The GNU C Library
Any Unix-like operating system needs a C library: the library which defines the ``system calls'' and ...
- 起始授权机构(SOA)
起始授权机构 编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 起始授权机构,SOA(Start Of Authority):该记录表明DNS名称服务器是DNS域中的数据 ...
- python学习笔记一:数据类型
一.Python文件类型 1.源代码 hello.py: 1 #!/usr/bin/python 2 print "hello world" 2.字节代码:python源文件经编译 ...
- SQL多行变一列
CREATE TABLE DEPT (DeptNo INT IDENTITY(1, 1)NOT NULL , Country VARCHAR(50) , Location VARCHAR(50) ...
- jmeter学习(二),如何安装jmeter?
官网地址:http://jmeter.apache.org/download_jmeter.cgi 如下图数字3.2表示的是版本号,jmeter是基于java的压力测试工具.所以运行环境一定要满足最低 ...
- selenium自动化测试浏览器驱动安装(属于转载文章)
1.下载selenium压缩包 http://pypi.python.org/pypi/selenium 下载后压缩在python文件下的lib>site-package文件夹下 2.进入sel ...
- App自动化测试前期准备---android SDK配置
说明:就是配置android SDK 一.sdk下载 Windows(X64):立即下载 Linux(X64):立即下载 二.Windows配置 1.解压文件 直接解压到指定目录(演示目录:D:/) ...