poj-1742-背包
来源:互联网 发布:sql拼接字符串 编辑:程序博客网 时间:2024/05/21 17:42
背包求解的一道题目;
注意初始化。
#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>#include<queue>#include<stack>#include<map>#include<string>#include<stdlib.h>#define INT_MAX 0x7fffffff#define INF 999999#define max3(a,b,c) (max(a,b)>c?max(a,b):c)#define min3(a,b,c) (min(a,b)<c?min(a,b):c)#define mem(a,b) memset(a,b,sizeof(a))using namespace std;struct node{ int u; int v; int w; bool friend operator < (node a, node b){ return a.w < b.w; }}edge[1001];int gcd(int n,int m){if(n<m) swap(n,m);return n%m==0?m:gcd(m,n%m);}int lcm(int n,int m){if(n<m) swap(n,m);return n/gcd(n,m)*m;}int dp[100001];int c[1001];int w[1001];int sum;int main(){ int n,i,j; int num[100001]; while(scanf("%d%d",&n,&sum)&&(n||sum)) { for(i=1;i<=n;i++)scanf("%d",&c[i]); for(i=1;i<=n;i++)scanf("%d",&w[i]); memset(dp,0,sizeof(dp)); dp[0]=1; int ans=0; for(i=1;i<=n;i++) { mem(num,0); for(j=c[i];j<=sum;j++) { if(dp[j]!=1&&dp[j-c[i]]==1&&num[j-c[i]]<w[i]) { ans++; num[j]=num[j-c[i]]+1; dp[j]=1; } } } printf("%d\n",ans); } return 0;}
- POJ 1742 多重背包
- poj 1742 多重背包
- poj 1742多重背包
- poj-1742-背包
- poj 1742 多重背包
- poj 1742(多重背包)
- POJ 1742 多重背包
- poj 1742Coins(混合背包)
- poj 1742 coins 背包问题
- POJ 1742 Coins (背包)
- POJ 1742 多重背包问题
- poj 1742 Coins (背包)
- poj 1742 Coins(多重背包)
- poj 1742 多重背包可行性
- poj 1742 coins_多重背包
- poj 1742 Coins(多重背包)
- POJ-1742(多重背包)
- POJ-1742-多重背包-Coins
- 解决win2003,win2008远程桌面登陆不了问题
- 面试:大小端的判断与大小端的转换
- 常用js
- PyQt4 学习之菜单和工具栏
- 时间复杂度
- poj-1742-背包
- cvSVM及trainSVM参数
- JavaScript 对象和字串之间的转换
- shell爬虫工具
- 编译ffmpeg 'XXXX' follows non-static declaration错误解决办法
- F7控件经常被设置各种过滤条件
- quilt 的使用例子
- 20130419阿里电话面试记录
- POJ 1038 Bugs Integrated, Inc. 三进制压缩DP