noip飞扬的小鸟
题解:
挺简单的题目
f[i][j]表示x坐标为i,y坐标为j的最小值
会发现那个东西是个完全背包
从f[i][j-a[i]]转移一下就是O(1)转移的了
另外上界为m这个要特判一下
我把sum[a[i]]写成了sum[i]还过了样例拿了65分真的是神奇
另外注意一下要先计算再判断不可行的
因为他是在前一格瞬间跳到那么高
代码:
#include <bits/stdc++.h>
using namespace std;
#define rint register int
#define IL inline
#define rep(i,h,t) for (rint i=h;i<=t;i++)
#define dep(i,t,h) for (rint i=t;i>=h;i--)
const int N=2e4;
int f[][],n,m,k,a[N],b[N],sum[N],t[N][];
struct re{
int a,b,c;
}c[N];
const int INF=1e9;
void minn(int &x,int y)
{
if (x>y) x=y;
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m>>k;
rep(i,,n) cin>>a[i]>>b[i];
rep(i,,k) cin>>c[i].a>>c[i].b>>c[i].c,c[i].b++,c[i].c--;
rep(i,,n) t[i][]=,t[i][]=m;
rep(i,,k) t[c[i].a][]=c[i].b,t[c[i].a][]=c[i].c,sum[c[i].a]=;
rep(i,,n) sum[i]+=sum[i-];
f[][]=INF;
rep(i,,n)
{
rint now=i%,lst=(i+)%;
rep(j,,m) f[now][j]=INF;
rep(j,a[i]+,m) minn(f[now][j],min(f[now][j-a[i]],f[lst][j-a[i]])+);
rep(j,m-a[i],m) minn(f[now][m],min(f[now][j],f[lst][j])+);
rep(j,,m)
if (j+b[i]<=m) minn(f[now][j],f[lst][j+b[i]]);
rep(j,,t[i][]-) f[now][j]=INF;
rep(j,t[i][]+,m) f[now][j]=INF;
bool tt=;
rep(j,,m) if (f[now][j]<INF) tt=;
if (tt)
{
cout<<<<endl;
cout<<sum[i]-;
exit();
}
}
cout<<<<endl;
int ans=INF;
rep(i,,m) minn(ans,f[n%][i]);
cout<<ans<<endl;
return ;
}
noip飞扬的小鸟的更多相关文章
- NOIP 飞扬的小鸟 题解
题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便宣 ...
- NOIP 2014飞扬的小鸟(DP优化)
题目链接 飞扬的小鸟 考场的70分暴力(实际只有50分因为数组开小了……) 考场代码(数组大小已修改) #include <cstdio> #include <cstring> ...
- Codevs 3729 飞扬的小鸟
飞扬的小鸟 标签 动态规划 NOIp提高组 2014 难度 提高+/省选- 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小 ...
- 洛谷 P1941 飞扬的小鸟
洛谷 P1941 飞扬的小鸟 原题链接 首先吐槽几句 noip都快到了,我还不刷起联赛大水题! 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节 ...
- 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 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的 ...
- [NOIP2014][DP]飞扬的小鸟
[NOIP2014]飞扬的小鸟 ——!x^n+y^n=z^n 题目描述: Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画 ...
随机推荐
- 使用Let's Encrypt为网站加入SSL证书
一直没有为网站配置过HTTPS,因为怕麻烦.不过这次工作要求,没有办法,只能硬着头皮上了. 老板提供了一个关键字,Let's Encrypt.其实最早看到这句话,我以为是一个动词,让我行动的意思.但是 ...
- Xamarin AVD x86 问题
inspired by https://stackoverflow.com/questions/34282243/error-while-starting-emulator/34282302#3428 ...
- Ajax使用formdata异步上传文件,报错the request was rejected because no multipart boundary was found
基于jQuery的Ajaxs使用FormData上传文件要注意两个参数的设定 processData设为false 把processData设为false,让jquery不要对formData做处理, ...
- 022_applescript快速入门教程
基础语法 一.这部分介绍注释,发出声音,弹窗 (1)简单入门 <1>多行注释 (* this is multi comment *) <2>发出响声 beep 3 (2) #表 ...
- 一种简单的生产环境部署Node.js程序方法
最近在部署Node.js程序时,写了段简单的脚本,发觉还挺简单的,忍不住想与大家分享. 配置文件 首先,本地测试环境和生产环境的数据库连接这些配置信息是不一样的,需要将其分开为两个文件存储 到conf ...
- springboot:扩展类型转换器
需求:提交一个字符串到后端的java.sql.Time类型,就报错了: Failed to convert property value of type [java.lang.String] to r ...
- 前端 ---BOM的介绍
BOM的介绍 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:文档对象模型,操作网页上的 ...
- Python-数据类型 主键auto_increment
MySQL数据操作: DML========================================================在MySQL管理软件中,可以通过SQL语句中的DML语言来实 ...
- hdu2602 Bone Collector 01背包
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...
- Struts2中类数据封装的方式
第一种方式:属性驱动提供对应属性的set方法进行数据的封装.表单的哪些属性需要封装数据,那么在对应的Action类中提供该属性的set方法即可.表单中的数据提交,最终找到Action类中的setXxx ...