noip提高组2014 飞扬的小鸟
来源:互联网 发布:鼎复数据 知乎 编辑:程序博客网 时间:2024/04/30 03:00
DP 用可重复背包优化
代码较长 注意细节
#include<string>#include<cstring>#include<cmath>#include<queue>#include<iostream>#include<algorithm>#include<vector>#include<cstdio>#include<cstdlib>using namespace std;int shang[10010];int xia[10010];int up[10010];int down[10010];int f[10010][1010];int n,m,k;bool exist[10010];int main(){//freopen("bird.in","r",stdin);//("bird.out","w",stdout);int i,j,s,t;scanf("%d%d%d",&n,&m,&k);for(i=0;i<n;i++) { scanf("%d%d",&shang[i],&xia[i]); }for(i=1;i<=n;i++) { down[i]=0; up[i]=m+1; }for(i=1;i<=k;i++) { scanf("%d%d%d",&j,&s,&t); down[j]=s; exist[j]=1; up[j]=t; }for(i=1;i<=n;i++) { for(j=0;j<=m;j++) { f[i][j]=1000000000;} }f[0][0]=1000000000;for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(j>=shang[i-1]) { f[i][j]=min(f[i][j],f[i-1][j-shang[i-1]]+1); f[i][j]=min(f[i][j],f[i][j-shang[i-1]]+1); } if(j==m) { for(k=m-shang[i-1];k<=m;k++) { f[i][j]=min(f[i-1][k]+1,f[i][j]); f[i][j]=min(f[i][j],f[i][k]+1); } }} for(j=1;j<=m;j++) { if(j+xia[i-1]<=m) f[i][j]=min(f[i][j],f[i-1][j+xia[i-1]]);} for(j=0;j<=down[i];j++) f[i][j]=1000000000; for(j=up[i];j<=m;j++) f[i][j]=1000000000; } bool hehe=0; int ans=1000000000; for(i=down[n]+1;i<=up[n]-1;i++) { if(f[n][i]<ans) { hehe=1; ans=f[n][i]; } } if(hehe) { cout<<"1"<<endl<<ans<<endl; return 0; } for(i=n-1;i>=0;i--) { for(j=down[i]+1;j<up[i];j++) { if(f[i][j]<1000000000) { cout<<"0"<<endl; k=i; hehe=1; break; }} if(hehe) break; } int tot=0; for(i=0;i<=k;i++) { if(exist[i]) tot++; } cout<<tot;return 0;}
0 0
- noip提高组2014 飞扬的小鸟
- Noip 2014 提高组 飞扬的小鸟
- NOIP提高组2015 飞扬的小鸟
- NOIP 提高组 飞扬的小鸟
- Luogu P1941 [NOIp提高组2014]飞扬的小鸟
- 【NOIP提高】飞扬的小鸟
- NOIP 2014 飞扬的小鸟
- NOIP 2014 飞扬的小鸟
- NOIP 2014 Day1 T3飞扬的小鸟
- [F][10+]NOIP 2014 飞扬的小鸟
- 【NOIp 2014】【二维dp】飞扬的小鸟
- 洛谷 P1941 飞扬的小鸟[NOIP 2014]
- NOIP 2014 D1T3 飞扬的小鸟
- NOIP 2014 飞扬的小鸟 [DP]
- NOIP 2015 飞扬的小鸟
- C++——NOIP提高组——飞扬的小鸟
- 【noip2014提高组】飞扬的小鸟
- 【NOIP2014提高组】飞扬的小鸟
- PaperBack:如何在一张A4纸上存储数据
- leecode algo4: Median of Two Sorted Arrays (Java)
- 《剑指Offer》面试题:打印出二叉树中结点值的和为输入整数的所有路径
- android - 动画
- lnmp、lamp、lnmpa一键安装包(Updated: 2015-08-31)
- noip提高组2014 飞扬的小鸟
- 【索引】索引五种扫描方式之索引跳跃扫描
- PHP数组的操作
- WebView中addJavascriptInterface不起作用解决方法
- 反转单链表 和 将数组按照某种条件分为前后两个部分
- 重温java代理模式
- android开发之使用拼音搜索汉字
- 关于R与javaWeb通信问题
- VIJOS-P1359 Superprime