NOIP2014飞扬的小鸟
来源:互联网 发布:淘宝联盟在哪里提现 编辑:程序博客网 时间:2024/05/01 11:47
天哪细节问题调了一个钟,手速不够快思路不够清晰写了一个钟,感觉一道第三题就要花掉我2个钟那我比赛的时候肿么办QAQ
说下这道题,首先纯暴力,70分到手,然后我们把01背包的转移变成有上界的完全背包,还有一些特殊情况特殊转移,代码还是比较好看的,去年比赛不知是电脑问题还是什么一直没输出,蠢到家了然后这题爆蛋了QAQQQQQQQQQQQ
#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#define N 10005#define M 1005#define inf 1000000007#define LL long longusing namespace std;int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}int n,m,k,ans=inf;int up[N],down[N],b[N][3];int f[N][M];int main(){ freopen("bird.in","r",stdin); freopen("bird.out","w",stdout); memset(b,0,sizeof(b)); n=read();m=read();k=read(); for (int i=0;i<n;i++) up[i]=read(),down[i]=read(); for (int i=1;i<=k;i++) { int x=read(); b[x][1]=read(),b[x][2]=read(); } for (int i=1;i<=n;i++) if (!b[i][2]) b[i][2]=m+1; for (int i=1;i<N;i++) for (int j=0;j<M;j++) f[i][j]=inf;f[0][0]=inf; for (int i=1;i<=n;i++) { for (int j=up[i-1]+1;j<=m;j++) { 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); } for (int j=m-up[i-1];j<=m;j++) { f[i][m]=min(f[i][m],f[i-1][j]+1); f[i][m]=min(f[i][m],f[i][j]+1); } for (int j=b[i][1]+1;j<b[i][2];j++) if (j+down[i-1]<=m) f[i][j]=min(f[i][j],f[i-1][j+down[i-1]]); f[0][0]=inf; for (int j=0;j<=b[i][1];j++) f[i][j]=inf; for (int j=m;j>=b[i][2];j--) f[i][j]=inf; }/* for (int j=n;j>=0;j--) { for (int i=1;i<=n;i++) cout<<f[i][j]<<' '; cout<<endl; }*/ for (int i=0;i<=m;i++) ans=min(ans,f[n][i]); if (ans!=inf) { printf("1\n%d\n",ans); return 0; } else { for (int i=n-1;i>=0;i--) { for (int j=1;j<=m;j++) if (f[i][j]<inf) { ans=i; break; } if (ans<inf) break; } } int cnt=0; for (int i=0;i<=ans;i++) if(b[i][2]!=m+1&&b[i][2]!=0) cnt++; printf("0\n%d\n",cnt); // for (int i=0;i<n;i++)cout<<b[i][1]<<' '<<b[i][2]<<endl; return 0;}
1 0
- NOIP2014 飞扬的小鸟
- NOIP2014飞扬的小鸟
- NOIP2014飞扬的小鸟
- NOIP2014 飞扬的小鸟
- noip2014飞扬的小鸟
- 【NOIP2014】飞扬的小鸟
- noip2014飞扬的小鸟
- 飞扬的小鸟 noip2014
- NOIP2014 飞扬的小鸟
- [NOIP2014]飞扬的小鸟
- [NOIP2014] 飞扬的小鸟
- 【NOIP2014】飞扬的小鸟
- NOIP2014:飞扬的小鸟
- NOIP2014 飞扬的小鸟
- [NOIP2014]飞扬的小鸟
- NOIP2014飞扬的小鸟
- 【NOIP2014】飞扬的小鸟题解
- NOIP2014 D1T3飞扬的小鸟
- Objective-C 面向对象基础
- PCMCIA卡知识
- MySQL 实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)
- Codeforces 466B Wonder Room
- Team Queue (uva540 队列模拟)
- NOIP2014飞扬的小鸟
- uva 1608
- 学习方法
- Codeforces 460C Present
- 在CUDA项目中使用ctags
- JDK,SDK,API之间的概念汇总
- 1045. Favorite Color Stripe (30)
- Android硬件加速总结
- rpm包安装简单方法