背包问题
来源:互联网 发布:金税盘开票软件官网 编辑:程序博客网 时间:2024/06/05 18:17
1 01背包
http://acm.hdu.edu.cn/showproblem.php?pid=2602(骨头)
http://www.cnblogs.com/javawebsoa/archive/2013/07/19/3201314.html
http://blog.csdn.net/libin56842/article/details/9338841
01背包的特点就是:每种物品仅有一件,可以选择放或不放。
#include <iostream>#include <algorithm>using namespace std;int a[1005],b[1005];int f[1005][1005];int main(){ int t,n,v; while(scanf("%d",&t)!=EOF) { while(t--) { cin>>n>>v; int i,j; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=n;i++) cin>>b[i]; for(i=1;i<=n;i++)//从第一个骨头呆最后一个骨头 { for(j=0;j<=v;j++)//容器容量从0到v { if(j>=b[i])//如果第i个骨头可以放入剩余容量的容器中 f[i][j]=max(f[i-1][j],f[i-1][j-b[i]]+a[i]);//选择放第i个还是不放 else//如果放不了则只要前i-1个的最大价值 f[i][j]=f[i-1][j]; } } cout<<f[n][v]<<endl; } }}
#include <iostream>#include <algorithm>using namespace std;int a[1005],b[1005];int main(){ int t; int dp[1005]; while(scanf("%d",&t)!=EOF) { while(t--) { int n,v,i,j; cin>>n>>v; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=n;i++) cin>>b[i]; memset(dp,0,sizeof(dp));//注意及时清0 for(i=1;i<=n;i++) { for(j=v;j>=b[i];j--) { dp[j]=max(dp[j],dp[j-b[i]]+a[i]); } } cout<<dp[v]<<endl; } }}
http://acm.hdu.edu.cn/showproblem.php?pid=2546(饭卡余额)
#include <iostream>#include <algorithm>using namespace std;int cmp(int a,int b){ return a<b;}int main(){ int n; while(scanf("%d",&n)!=EOF) { if(n==0) break; int m,i,j; int b[1005]={0}; int dp[1005]={0}; for(i=1;i<=n;i++) cin>>b[i]; sort(b+1,b+1+n,cmp);//从下到大排序 int MAX=b[n];//max等于最大的一个 cin>>m; if(m>=5) { m=m-5;//花5元卖最贵的菜 for(i=1;i<n;i++)//注意这里不等于n这里的n是最贵的菜,m-5就已经买过一次了 { for(j=m;j>=b[i];j--) { dp[j]=max(dp[j],dp[j-b[i]]+b[i]); } } cout<<m+5-MAX-dp[m]<<endl; } else cout<<m<<endl; }}
0 0
- 【无限背包】背包问题
- 背包问题---01背包
- 背包问题--部分背包
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- 背包问题
- Android提交library到Jcenter
- 怎样通过jq获取元素的真实的高度(包含小数点)
- 向Servlet中传递参数
- 修改系统 安装和卸载app对话框样式
- Groovy
- 背包问题
- Uplink Port Definition
- java-20160924
- LeetCode[231] Power of Two
- 如何优雅的生活 --工作后
- 一个程序员的顿悟:理想的程序员只比你多了6个一点点
- 字符串数组操作函数
- CSDN
- Android自定义View----时钟/仪表盘的简单实现