题目描述: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. 分享一个刷网页PV的python小脚本

    下面分享一个小脚本,用来刷网页PV. [root@huanqiu ~]# cat www.py #!/usr/bin/python# coding: UTF-8import webbrowser as ...

  2. Docker云Paas平台部署:Docker+Mesos+Marathon

    针对“互联网+”时代的业务增长.变化速度及大规模计算的需求,廉价的.高可扩展的分布式x86集群已成为标准解决方案,如Google已经在几千万台服务器上部署分布式系统.Docker及其相关技术的出现和发 ...

  3. anroid studio 找不到符号 位置: 类 drawable

    一般是把图片加到mipmap之后写成R.drawable.xxx引起的

  4. Lenovo GTX960M 配置CUDA

    文章是出自我的原创,是写在新浪博客里面的:http://blog.sina.com.cn/s/blog_13b7eb5b20102wvxw.html 首先,软件的版本你选择很重要,我们配置了两天才成功 ...

  5. ReactNative之style使用指南

    ReactNative中能使用的css样式有哪些呢Valid style props: [   "alignItems",   "alignSelf",   & ...

  6. Listview实现不同类型的布局

    打开各种客户端发现 Listview的布局多种多样,在我以前的认知中listview不是只能放一种item布局嘛,我就震惊了,现在我自己的项目上要用到这种方式那么就去做下 原理是listview 的a ...

  7. [CareerCup] 1.5 Compress String 压缩字符串

    1.5 Implement a method to perform basic string compression using the counts of repeated characters. ...

  8. [CareerCup] 9.10 Stack Boxes 垒箱子问题

    9.10 You have a stack of n boxes, with widths w., heights hir and depths drThe boxes cannot be rotat ...

  9. 系统级I/O学习记录

    重要知识点 输入/输出(I/O) I/O是主存和外部设备(如磁盘驱动器.终端和网络)之间拷贝数据的过程. 输入操作是从I/O设备拷贝数据到主存. 输出操作是从主存拷贝到I/O设备. Unix I/O ...

  10. 信息安全系统设计第二次&第四次实验

    实验二 固件设计  实验步骤: 环境配置如同实验一,承接实验一. 1.在虚拟机中编译代码.对于多线程相关的代码,编译时需要加-lpthread 的库. 2.下载调试在超级终端中运行可执行文件 pthr ...