vijos 1907 飞扬的小鸟
我心里毫无波动甚至还有点想笑。
WTF
WTF
WTF
WTF
WTF
WTF
WTF
GTMD调了一天什么鬼啊。
原来更新的范围有讲究啊。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define inf 1000000007
using namespace std;
int n,m,k,x[],y[],dp1[][],dp2[][],ret=,ans1=,mx[],ans2=inf;
struct pnt
{
int p,l,h;
}p[];
bool vis[][];
bool cmp(pnt x,pnt y)
{
return x.p<y.p;
}
bool fail_all(int x)
{
for (int j=;j<=m;j++)
if (dp2[x][j]!=inf) return false;
return true;
}
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<=k;i++)
scanf("%d%d%d",&p[i].p,&p[i].l,&p[i].h);
sort(p+,p+k+,cmp);
for (int i=;i<=m;i++) vis[][i]=true;
for (int i=;i<=n;i++)
{
while ((p[ret+].p<=i) && (ret<=k-)) ret++;
int l,r;
if (p[ret].p==i) {l=p[ret].l+;r=p[ret].h-;}
else l=,r=m;
int limit=;if (p[ret].p==i-) limit=p[ret].l+;
for (int j=;j<=m;j++) dp2[i][j]=inf;
for (int j=;j<=m-;j++)
{
if (((vis[i][j-x[i-]]) || (vis[i-][j-x[i-]])) && (j>x[i-]))
{
dp1[i][j]=max(dp1[i-][j-x[i-]],dp1[i][j-x[i-]]);
dp2[i][j]=min(dp2[i][j],dp2[i][j-x[i-]]+);
dp2[i][j]=min(dp2[i][j],dp2[i-][j-x[i-]]+);
vis[i][j]=true;
}
}
for (int j=;j<=m-;j++)
{
if ((j+y[i-]<=m) && (vis[i-][j+y[i-]]))
{
dp1[i][j]=max(dp1[i][j],dp1[i-][j+y[i-]]);
dp2[i][j]=min(dp2[i][j],dp2[i-][j+y[i-]]);
vis[i][j]=true;
}
}
for (int j=;j<=m;j++)
{
if (vis[i-][j])
{
int ret;
dp1[i][m]=max(dp1[i][m],dp1[i-][j]);
if ((m-j)%x[i-]) ret=(m-j)/x[i-]+;
else if (m==j) ret=;
else ret=(m-j)/x[i-];
dp2[i][m]=min(dp2[i][m],dp2[i-][j]+ret);
vis[i][m]=true;
}
}
for (int j=;j<=l-;j++) {vis[i][j]=false;dp2[i][j]=inf;}
for (int j=r+;j<=m;j++) {vis[i][j]=false;dp2[i][j]=inf;}
for (int j=;j<=m;j++)
if (vis[i][j])
{
dp1[i][j]+=(p[ret].p==i);
ans1=max(ans1,dp1[i][j]);
}
if (vis[i][m]) ans1=max(ans1,dp1[i][m]);
if (fail_all(i))
{
printf("0\n%d\n",ans1);
return ;
}
}
for (int i=;i<=m;i++)
if (vis[n][i]) ans2=min(ans2,dp2[n][i]);
printf("1\n%d\n",ans2);
return ;
}
vijos 1907 飞扬的小鸟的更多相关文章
- P1907飞扬的小鸟
P1907飞扬的小鸟 描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或 ...
- [codevs3729]飞扬的小鸟
[codevs3729]飞扬的小鸟 试题描述 输入 输出 输出文件名为 bird.out. 共两行. 第一行,包含一个整数,如果可以成功完成游戏,则输出 1,否则输出 0. 第二行,包含一个整数,如果 ...
- Codevs 3729==洛谷P1941 飞扬的小鸟
P1941 飞扬的小鸟 456通过 2.4K提交 题目提供者该用户不存在 标签动态规划2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 Flappy Bird 是一 ...
- NOIP2014 飞扬的小鸟
3. 飞扬的小鸟 (bird.cpp/c/pas) [问题描述] Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的 ...
- Codevs 3729 飞扬的小鸟
飞扬的小鸟 标签 动态规划 NOIp提高组 2014 难度 提高+/省选- 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小 ...
- [NOIP2014][DP]飞扬的小鸟
[NOIP2014]飞扬的小鸟 ——!x^n+y^n=z^n 题目描述: Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画 ...
- Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
Luogu 1941 [NOIP2014]飞扬的小鸟 (动态规划) Description Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...
- UOJ #17. 【NOIP2014】飞扬的小鸟 背包DP
#17. [NOIP2014]飞扬的小鸟 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4902 Solved: 1879 题目连接 http:// ...
- P1941 飞扬的小鸟(背包)
P1941 飞扬的小鸟 细节题 上升是完全背包 下降是01背包 (数组访问越界本机怎么能过???(大雾)) #include<iostream> #include<cstdio> ...
随机推荐
- ubuntu 系统出错一览
1.系统升级出错:打开终端输入:sudo apt-get install -f
- System.OutOfMemoryException: 内存不足。(转)
主要是网站生成水印图片的时候遇到的 原文地址:http://www.cnblogs.com/longgel/archive/2010/03/24/1693776.html 今天调试asp.net 程序 ...
- c++实现之 -- 汉语词语的简单处理
好了,我们现在已经会怎样读入了,然后就是研究一下如何存储等一些细节上的的问题了. 首先,比较函数是不能传入char*的地址的,但是可以接受一个string类. 然而,如果是两个比较长的string类, ...
- WebAPI用法
ASP.NET Web API(一):使用初探,GET和POST数据[Parry] HttpClient + ASP.NET Web API, WCF之外的另一个选择[dudu] 通过这两篇文章让我了 ...
- C#入门篇6-11:字符串操作 查找与替换
#region 查找与替换 public class C4 { //查找 public static void StrFind() { //目标字符串 string str1 = "~awe ...
- hibernate generator class=xxx id详解
<id>元素中的<generator>用来为该持久化类的实例生成唯一的标识,hibernate提供了很多内置的实现.Increment:由hibernate自动递增生成标识符, ...
- extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办。。。
extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办...所以要把它格 ...
- POJ 1258 最小生成树
23333333333 完全是道水题.因为是偶自己读懂自己做出来的..T_T.prim的模板题水过. DESCRIPTION:John竞选的时候许诺会给村子连网.现在给你任意两个村子之间的距离.让你求 ...
- ruby学习网站
Ruby官方中文网(推荐): https://www.ruby-lang.org/zh_cn/ 国内非常不错的Ruby学习教程网站(推荐): http://www.yiibai.com/ruby Ru ...
- 如何在 Ubuntu 15.04 系统中安装 Logwatch
大家好,今天我们会讲述在 Ubuntu 15.04 操作系统上如何安装 Logwatch 软件,它也可以在各种 Linux 系统和类 Unix 系统上安装.Logwatch 是一款可定制的日志分析和日 ...