飞扬的小鸟(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 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...
随机推荐
- C语言函数篇(五)静态库和动态库的创建和使用
使用库函数是源码的一种保护??? <我猜的.> 库函数其实不是新鲜的东西,我们一直都在用,比如C库. 我们执行pringf() 这个函数的时候,就是调用C库的函数. 下面记录静态库和动态库 ...
- Windows Server 远程桌面连接不上问题解决
关于Windows Server 远程桌面连接不上的问题需要从服务.端口.防火墙这几方面进行检查: 服务器上需要 开启的服务: - Remote Access Auto Connection Mana ...
- 20145202马超 《Java程序设计》第三周学习总结
************************http://git.oschina.net/tuolemi/java这是git的那个网址********************* 函数的重载:在同一 ...
- 2.栅格的类中同时设置col-md-* col-sm-*的作用
1.一般设定成这样的话,在小屏幕上会堆叠在一起 <div class="row"> <div class="col-md-4 ">COL ...
- Django基本使用
目录 1 安装 1.1 安装pip 1.2 安装django 2 创建项目 2.1 使用 管理工具 django-admin.py 来创建 PyLearn 项目: 2.2 启动服务 本文章以下所有列子 ...
- iOS算法笔记-快速排序-OC实现
快速排序(Quicksort)是对冒泡排序的一种改进. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另 ...
- iOS-QQ好友列表实现
0.QQ好友列表实现 0.首先说说实现思路 自定义UITableView,每一个分组都是一个UITableViewHeaderFooterView,然后自定义cell,这里分组的实现主要是自定义UIT ...
- 问题:JFinal框架使用FreeMarker渲染视图报错
本人用的是JFinal-3.4. 问题描述: 在JFinal框架中使用FreeMarker渲染视图时,报 Caused by: java.lang.ClassNotFoundException: fr ...
- python的inspect模块
一.type and members 1. inspect.getmembers(object[, predicate]) 第二个参数通常可以根据需要调用如下16个方法: 返回值为object的所有成 ...
- .gitignore 中文文件夹无效
有个文件夹名如:测试 在.gitignore中添加 /测试/ 但运行命令git status后发现还是被追踪到了 一番搜索后终于发现.gitignore文件编码是GBK的,重新将文件保存成utf ...