NOIP2014 飞扬的小鸟
来源:互联网 发布:游奇网络 编辑:程序博客网 时间:2024/05/01 08:57
题目:http://www.luogu.org/problem/show?pid=1941
分析:一个背包问题。[i,j]是跳上来的情况时:可以由[i,j-k]得到,则问题得到解决。注意:f数组要先进行上升操作,再进行下降操作,否则[i,j-k]有可能是下降得到的,从而得到错解(吸取我的教训吧,调了好长时间)
代码:
#include <cstdio>#include <algorithm>using namespace std;const int Tmaxn= 10005,Tmaxm=1005,inf=0x7ffffff;int n,m,k,f[Tmaxn][Tmaxm],up[Tmaxn],down[Tmaxn],data[Tmaxn][2];void work(){ int i,j,k,ans=0; bool ok; for(i=1;i<=n;i++) { ok=false; for(j=1;j<=m;j++) { if(j==m) { for(k=m-up[i-1];k<=m;k++) { f[i][j]=min(f[i][j],f[i-1][k]+1); f[i][j]=min(f[i][j],f[i][k]+1); } } if(j>up[i-1]) //= { f[i][j]=min(f[i][j],f[i-1][j-up[i-1]]+1); f[i][j]=min(f[i][j],f[i][j-up[i-1]]+1); } if(f[i][j]!=inf&&j>data[i][0]&&j<data[i][1]) ok=true; } for(j=data[i][0]+1;j<data[i][1];j++) { if(j+down[i-1]<=m) f[i][j]=min(f[i][j],f[i-1][j+down[i-1]]); if(f[i][j]!=inf) ok=true; } if(ok) if(data[i][1]!=m+1) ans++; else; else{ printf("0\n%d\n",ans); return; } for(j=0;j<=data[i][0];j++) f[i][j]=inf; for(j=m;j>=data[i][1];j--) f[i][j]=inf; } ans=inf; for(i=0;i<=m;i++) ans=min(ans,f[n][i]); printf("1\n%d\n",ans); return;}void init(){ int i,j; for(i=1;i<=n+1;i++) for(j=0;j<=m+1;j++) f[i][j]=inf; return;}int main(){ int i,p; scanf("%d%d%d",&n,&m,&k); for(i=0;i<n;i++) { scanf("%d%d",&up[i],&down[i]); data[i][0]=0; data[i][1]=m+1; } data[n][0]=0; data[n][1]=m+1; for(i=1;i<=k;i++) { scanf("%d",&p); scanf("%d%d",&data[p][0],&data[p][1]); } init(); work(); /* for(i=m;i>=0;i--) { for(p=0;p<=n;p++) printf("%10d ",f[p][i]); printf("\n"); } */ return 0;}
0 0
- NOIP2014 飞扬的小鸟
- NOIP2014飞扬的小鸟
- NOIP2014飞扬的小鸟
- NOIP2014 飞扬的小鸟
- noip2014飞扬的小鸟
- 【NOIP2014】飞扬的小鸟
- noip2014飞扬的小鸟
- 飞扬的小鸟 noip2014
- NOIP2014 飞扬的小鸟
- [NOIP2014]飞扬的小鸟
- [NOIP2014] 飞扬的小鸟
- 【NOIP2014】飞扬的小鸟
- NOIP2014:飞扬的小鸟
- NOIP2014 飞扬的小鸟
- [NOIP2014]飞扬的小鸟
- NOIP2014飞扬的小鸟
- 【NOIP2014】飞扬的小鸟题解
- NOIP2014 D1T3飞扬的小鸟
- 将自定义类添加到到数据库FMDB
- 洛谷P1551 亲戚
- 我的CTF之旅(二)
- TFS域账户手动同步
- 遍历Map的方法
- NOIP2014 飞扬的小鸟
- java之集合学习(一)
- 字典树 hdu5269 ZYB loves Xor I
- hdu 5229 ZCC loves strings
- Java静态代码分析工具Infer
- 单片机之定时器
- Hibernate3学习笔记(2)——Hibernate中的lazy load
- Java的可变参数“...”
- 大整数求和