摘要:
至少一种 至多一种 还有自由选取的背包问题参考别人的- -不说了#include
#include
#include
#include
using namespace std;
int n, T, ans, dp1[105], dp2[105];
struct node
{ int m, tp; int t[105], h[105];
} set[105];
bool cmp(node x,node y)
{ return x.tp=set[i].t[j]; k--) { dp2[k]=max(dp... 阅读全文
摘要:
可以把每行看做是最多挑一个的物品系列,然后背包过。。#include
#include
#include
#include
using namespace std;
int dp[105], v[105][105];
int main()
{ int n, m, i, j, k, w; while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0) break; memset(dp,-63,sizeof(dp)); dp[0]=0; for(i=0;i=0;j--) ... 阅读全文
摘要:
这题乍一看是01背包水题,其实一看数据,明显直接01背包是过不了的, 再看那个V-C的范围是0-10 很明显,可能的搭配数最多也就121种那么我就开一个数组记录下各种搭配的数量,用多重背包过#include
#include
#include
#include
using namespace std;
int dp[10005];
char s[15];
int v, c, data[11][11], m;
void deal(int vi,int w,int num)
{ int i, j, k; k=1; while(k=k*w;j--) ... 阅读全文