摘要:
这道题开始我以为是将全家人所能携带重量的总和加起来,作为新的背包的容量,但样例过不了,后仔细一读题,原来是以每人为一个背包,最后计算各背包的总和。也就是多人的01背包问题。代码如下:#include<stdio.h>#include<string.h>#define MAXN 1000+10int T, N, G, sum;int p[MAXN], w[MAXN], mw[110], f[MAXN][35];void solve(){ memset(f, 0, sizeof(f)); sum = 0; for(int k = 1; k <= G; k ++) { 阅读全文
posted @ 2012-03-19 22:08
BFP
阅读(294)
评论(0)
推荐(0)
摘要:
这道背包题很基础,要学习一下dp输出,。代码如下:#include<stdio.h>#include<string.h>#define MAXN 10000int tap, cdnum, num[25],f[25][MAXN],p[25][MAXN];void print(int i, int j){ if(i == 0) return; print(i - 1, p[i][j]); if(p[i][j] < j) printf("%d ", num[i]);}void solve(){ memset(p,0,sizeof(p)); m... 阅读全文
posted @ 2012-03-19 00:00
BFP
阅读(252)
评论(0)
推荐(0)
浙公网安备 33010602011771号