垃圾陷阱 && [NOIP2014 提高组] 飞扬的小鸟
#include<bits/stdc++.h>
using namespace std;
int d,n,dp[1010];
struct node{int t,f,h;} a[1010];
bool cmp(node aa,node bb){ return aa.t<bb.t; }
int main()
{
scanf("%d%d",&d,&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&a[i].t,&a[i].f,&a[i].h);
}
sort(a+1,a+n+1,cmp);
dp[0]=10;//某一深度的血量
for(int i=1;i<=n;i++)
{
for(int j=d;j>=0;j--)
{
if(dp[j]>=a[i].t)//血量=时间
{
if(j+a[i].h>=d)
{
printf("%d",a[i].t);
return 0;
}
dp[j+a[i].h]=max(dp[j+a[i].h],dp[j]);//垫
dp[j]+=a[i].f;//吃
}
}
}
printf("%d",dp[0]);
return 0;
}
[NOIP2014 提高组] 飞扬的小鸟 :
把无限点击换成完全背包,下降换成01背包,无法到达就是点正无穷次
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
bool vis[100010];
int dp[10010][2010];//在坐标 i,j 处未经处理时的点击次数 j 会超过 m ,so开到2000
struct move{int x,y;}a[100010];
int low[100010],hi[100010];
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
}
for(int i=1;i<=n;i++) low[i]=1,hi[i]=m;
for(int i=1;i<=k;i++)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
vis[u]=1;
low[u]=v+1;
hi[u]=w-1;
}
memset(dp,0x3f,sizeof(dp));
for(int i=1;i<=m;i++) dp[0][i]=0;
for(int i=1;i<=n;i++)
{
for(int j=a[i].x+1;j<=m+a[i].x;j++)
dp[i][j]=min(dp[i-1][j-a[i].x],dp[i][j-a[i].x])+1;
for(int j=m+1;j<=m+a[i].x;j++)
dp[i][m]=min(dp[i][m],dp[i][j]);
for(int j=1;j<=m-a[i].y;j++)
dp[i][j]=min(dp[i][j],dp[i-1][j+a[i].y]);
for(int j=1;j<low[i];j++) dp[i][j]=1e9;
for(int j=hi[i]+1;j<=m;j++) dp[i][j]=1e9;
}
int ans=1e9;
for(int i=1;i<=m;i++) ans=min(ans,dp[n][i]);
if(ans<1e9) printf("1\n%d",ans);
else
{
int i,j;
for(i=n;i>=1;i--)
{
for(j=1;j<=m;j++)
{
if(dp[i][j]<1e9) break;
}
if(j<=m) break;
}
ans=0;
for(j=1;j<=i;j++)
if(vis[j])ans++;
printf("0\n%d",ans);
}
return 0;
}
垃圾陷阱 && [NOIP2014 提高组] 飞扬的小鸟的更多相关文章
- [DP]Luogu 2014NOIP提高组 飞扬的小鸟题解
2014NOIP提高组飞扬的小鸟题解 题目描述 Flappy Bird是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一 ...
- 刷题总结——飞扬的小鸟(NOIP2014提高组)
题目: 题目背景 NOIP2014 提高组 Day1 试题. 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面 ...
- [NOIP2014] 提高组 洛谷P2038 无线网络发射器选址
题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形成的网格状,并且相邻 ...
- NOIP2014提高组 酱油记
NOIP考到哪里我就写到哪里好了. 2014/10/12 初赛 下午两点半开始考,我两点就到了.然后看到了QYL,NYZ,CZR等大神,先Orz了再说. 考试开始前,发现考场竟然没几个我认识的,不是按 ...
- NOIP2014提高组 DAY1 -SilverN
T1 生活大爆炸版石头剪刀布 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头剪刀布的 ...
- noip2014 提高组
T1 生活大爆炸版 石头剪刀布 题目传送门 就是道模拟题咯 #include<algorithm> #include<cstdio> #include<cstring&g ...
- NOIP2014提高组 题解报告
D1 T1 无线网路发射器选址 题目大意:找一个矩形,使其覆盖的目标点最大. 题目过水,直接暴力搞过去,代码就不贴了. 但我TM居然有个地方SB了,调了半天才发现输入有问题: scanf(" ...
- 【学术篇】luogu1351 [NOIP2014提高组] 联合权值
一道提高组的题..... 传送门:题目在这里.... 现在都懒得更自己的blog了,怕是太颓废了_ (:з」∠) _ 好久没做题了,手都生了.(好吧其实是做题方面手太生了) 这题我都不想讲了,把代码一 ...
- [NOIP2014] 提高组 洛谷P1941 飞扬的小鸟
题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便 ...
随机推荐
- python 日志logging设置按天进行保存,保存近7天,过期日志自动清理
参考文章(写的很详细):https://www.cnblogs.com/xujunkai/p/12364619.html 前言: 跑接口自动化或者其他程序运行时,如果只能保存一份log文件,可能会存在 ...
- nginx安装,手动源码安装
什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ra ...
- sqlplus -S参数表示什么意思?
sqlplus -S , -S选项是静默模式,是Silent的缩写.在这种模式下将会以最精简的形式完成SQL*Plus的交互过程. -S模式多用于脚本模式.在命令行sqlplus -S还有可能出现卡住 ...
- systemd学习及使用
什么是systemd? (译)systemd是linux系统的一组基础构件块.它提供了一个系统和服务的管理,它以PID 1 的形式运行并启动系统的其余部分.systemd 使用积极的并行化功能,使用s ...
- linux修改配置文件关闭终端失效问题
当前shell环境为 交互式login-shell(非图形化界面环境) /etc/profile /etc/bash.bashrc ~/.profile ~/bashrc 当前环境为 交互式非logi ...
- SSRF打认证的redis
redis客户端在向服务端传输数据用到的是RESP协议 客户端向Redis服务器发送一个仅由Bulk Strings组成的RESP Arrays. Redis服务器回复发送任何有效RESP数据类型作为 ...
- go语言 strconv.ParseInt 的实现分析
字符串与数值之间进行转换是一个高频操作,在go语言中,SDK提供 strconv.ParseInt 将字符串转换为数值,strconv.FormatInt 可以将数值转换为字符串. 1.首先看下 st ...
- Exception in thread “main“ java.net.ConnectException: Call From
问题描述:#报错语句:FileSystem fs = FileSystem.get(new URI("hdfs://hadoop000:8020"),new Configurati ...
- 【刷题-LeetCode】152 Maximum Product Subarray
Maximum Product Subarray Given an integer array nums, find the contiguous subarray within an array ( ...
- python中True和False
python中只有0代表False,只有1代表True,注意只有!! if x: print('True') 只要x是非零数值.非空字符串.非空list等,就判断为True,否则为False.