题目描述:http://codevs.cn/problem/3729/

表示各种shabi的我编和调了半天,思路大体就是一个完全背包的模型,不过会多一些额外的转移(因为题目限制高度之类的),不过值得注意的是应该先向上转移一遍再向下,不然会WA

——————————分割线—————————–

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define DAN 999999999//被假定为最大值
int f[10010][10010]={0};
int up[10010]={0},down[10010]={0};//每个位置点击1次上升的高度和不点击下降的高度
int maxhigh[10010]={0},minhigh[10010]={0};//上界 和 下界(有管子的就是上、下管子,无管子就是m+1,0)
int n,m,k;
int step=0;//可以通过的管子数目
int minstep=DAN;//最少点击数 int main()
{
scanf("%d%d%d",&n,&m,&k);
for (int i=0;i<n;i++)
scanf("%d%d",&up[i],&down[i]);
for (int i=0;i<=n;i++)
{
maxhigh[i]=m+1;
minhigh[i]=0;
}//初始化上、下界
int x;
for (int i=1;i<=k;i++)
{
scanf("%d",&x);
scanf("%d%d",&minhigh[x],&maxhigh[x]);
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
{
f[i][j]=DAN;
if (j-up[i-1]>0)
f[i][j]=min(f[i][j],min(f[i-1][j-up[i-1]],f[i][j-up[i-1]])+1);
}//完全背包部分
for (int j=m-up[i-1]; j<=m; j++)
f[i][m]=min(f[i][m],min(f[i][j],f[i-1][j])+1);//到顶的问题
for (int j=minhigh[i]+1; j<=maxhigh[i]-1; j++)
if (j+down[i-1]<=m)
f[i][j]=min(f[i][j],f[i-1][j+down[i-1]]);
for (int j=1; j<=minhigh[i]; j++)
f[i][j]=DAN;//在最后一层(即落地,或下管子)都不可以
for (int j=maxhigh[i]; j<=m; j++)
f[i][j]=DAN;//上管子到顶部不可以
bool pd=false;
for (int j=1; j<=m; j++)
if (f[i][j]<DAN)
pd=true;//判断在这个位置是否能够过关
if (!pd)
{
printf("0\n");
printf("%d",step);
return 0;
}//如果不能过关就输出过了几根管子
else
if (maxhigh[i]!=m+1)
step++;//如果经过的是管子,经过管子数+1
}
for (int i=1; i<=m; i++)
minstep=min(minstep,f[n][i]);//从到达终点的各种方案中选择点击数最少的
printf("1\n");
printf("%d",minstep);
return 0;
}

NOIP 2014 Day1 T3飞扬的小鸟的更多相关文章

  1. 【NOIP 2014 DAY1 T3】飞扬的小鸟(DP)

    题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便 ...

  2. 洛谷P1328==codevs3716 生活大爆炸版石头剪刀布[NOIP 2014 day1 T1]

    P1328 生活大爆炸版石头剪刀布 1.8K通过 2.6K提交 题目提供者2014白永忻 标签模拟NOIp提高组2014 难度普及- 提交该题 讨论 题解 记录 最新讨论 Who can help m ...

  3. 3728 联合权值[NOIP 2014 Day1 T2]

    来源:NOIP2014 Day1 T2 OJ链接: http://codevs.cn/problem/3728/ https://www.luogu.org/problemnew/show/P1351 ...

  4. 洛谷P2668 斗地主==codevs 4610 斗地主[NOIP 2015 day1 T3]

    P2668 斗地主 326通过 2.6K提交 题目提供者洛谷OnlineJudge 标签搜索/枚举NOIp提高组2015 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 出现未知错误是说梗啊 ...

  5. noip 2018 day1 T3 赛道修建 贪心_树上问题_multiset

    Code: // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace std; #define maxn 5000 ...

  6. NOIP 2014 提高组 Day1

    期望得分:100+100+50=250 实际得分:100+100+50=250 此次NOIP  ZJ省一分数线:500,SD:345 https://www.luogu.org/problem/lis ...

  7. NOIP 2014飞扬的小鸟(DP优化)

    题目链接  飞扬的小鸟 考场的70分暴力(实际只有50分因为数组开小了……) 考场代码(数组大小已修改) #include <cstdio> #include <cstring> ...

  8. NOIP 2014 提高组 题解

    NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...

  9. Codevs 3729 飞扬的小鸟

    飞扬的小鸟 标签 动态规划 NOIp提高组 2014 难度 提高+/省选- 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小 ...

随机推荐

  1. 安装多个版本的unity

    版本特性导致新版本Unity打开老版本的项目工程报错,所以最好在电脑上安装多个不同版本的Unity 方法一 安装目录命名:Unity_3.5 , Unity_4.3.1 确保默认例子的安装路径分开C: ...

  2. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_acce

    在tomcat/conf/server.xml里的<host>标签下加上 <Valve className="org.apache.catalina.valves.Acce ...

  3. 【markdown】markdown常用语法

    标题 用1~6个# 标题1 标题2 标题3 标题4 标题5 标题6 源码: # 标题1 ## 标题2 ### 标题3 #### 标题4 ##### 标题5 ###### 标题6 引用 引用使用 引用使 ...

  4. C#往线程里传递参数

    Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托. Thread (ThreadStart) 初始化 Th ...

  5. Oracle中没有 if exists(...)

    对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法,这里先分析常用的三种,推荐使用最后一种 第一种是最常用的,判断count(*)的值是否为零,如下declare  v ...

  6. .NET 常见的偏门问题

    1.空格 一般情况下," " 的空格可能被过滤掉,在中文输入法中也同样. 有的人会使用2次空格,但是还是无法达到目的. 实现方法:" "的空格,这不是使用2次空 ...

  7. Linux Linux程序练习十一(网络编程大文件发送UDP版)

    //网络编程发送端--大文件传输(UDP) #include <stdio.h> #include <stdlib.h> #include <string.h> # ...

  8. 讲述一下自己在linux中配置ftp服务的经历

    本人大二小白一名,从大一下学期就开始接触到linux,当时看到学校每次让我们下载资源都在一个ftp服务器中,感觉特别的高大上,所以自己就想什么时候自己能够拥有自己的ftp服务器,自己放一点东西进去,让 ...

  9. 第八章 self sizing cell

    本项目是<beginning iOS8 programming with swift>中的项目学习笔记==>全部笔记目录 ------------------------------ ...

  10. Linq动态查询简易解决之道(原创)

    因为项目需要使用Linq来查询数据,但是在多条件查询时,需要使用一大堆if(...!=string.empty)等判断条件感觉不是很优雅.网上搜索以下,大概找到了两种办法,一种是老外写的一个类,感觉用 ...