SDUTOJ 3307 a(k大背包)
2015-09-10 17:21
204 查看
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<cmath> #include<math.h> #include<queue> #define ll long long #define inf 1000010+10 using namespace std; int p[1010],c[1010],a[1010],b[1010]; int dp[1010][1010]; int main() { int n,m,i,j,k; int cla; scanf("%d",&cla); while(cla--) { scanf("%d%d",&n,&m); memset(dp,0,sizeof(dp)); for(i=1;i<=m;i++) { scanf("%d %d",&p[i],&c[i]); } for(i=1;i<=m;i++) { for(j=n;j>=p[i];j--) { for(int t=1;t<=2;t++) { a[t]=dp[j][t]; b[t]=dp[j-p[i] ][t]+c[i]; } int x=1,y=1,z=1; a[3]=b[3]=-1; while(z<=2&&(x<=2||y<=2)) { if(a[x]>b[y]) { dp[j][z]=a[x],x++; } else dp[j][z]=b[y],y++; if(dp[j][z]!=dp[j][z-1]) z++; } } } printf("%d\n",dp [1]+dp [2]); } return 0; }
相关文章推荐
- C++学习心得
- memcached全面剖析–4. memcached的分布式算法
- Struts2常用标签总结
- POJ 1050 To the Max (最大连续区间和+暴力枚举,水题)
- php生成指定长度的随机数
- 【.Net码农】C#WinForm编程中多语言的实现
- 并查集小结
- 安卓错误E/AndroidRuntime(4054):java.lang.NullPointerException
- 我的vimrc 配置
- 如何解决ajax跨域问题
- memcached全面剖析–3. memcached的删除机制和发展方向
- 观察者模式
- 线性表的操作(完成表的建立,插入,删除,排序,销毁,查找 )
- Mysql常用优化方法
- file 上传样式
- 机会模型与显著性检验(二)
- 使用Timer的schedule()方法
- CentOS6.5下kafka+ZooKeeper下载与安装详细教程-多机版本1
- 【.Net码农】Asp.net 2.0实现多语言
- C++Primer第五版 1.3节练习