摘要: inline void add(int x,int y,int f,int c){ node[hcnt]=Node(y,head[x],f,c);head[x]=hcnt++; node[hcnt]=Node(x,head[y],0,-c);head[y]=hcnt++; } int spfa(){ mst(d,-1);d[S]=0; mst(vis,0);q.p... 阅读全文
posted @ 2016-07-29 16:22 Kurokey 阅读(152) 评论(0) 推荐(0) 编辑
摘要: int n,m,x; vectorV[1005]; int dp[105][maxn]; int w[1005],v[1005]; void dfs(int u,int m){/// m当前可用容量,u 父节点 if(m<=0)return; for(int e:V[u]){ ///vector模拟树 for(int k=0;k<=m-w[e];++k)d... 阅读全文
posted @ 2016-07-29 11:18 Kurokey 阅读(186) 评论(0) 推荐(0) 编辑
摘要: void solve(){ for(int i=1;i=k*w[i];--j) ///w[i] 是第 i 个物品的重量 dp[j]=max(dp[j],dp[j-k*w[i]]+k*v[i]); ///v[i] 是第 i 个物品价值 k=c[i]+1-k; for(int j=sum;j>=k*w[i];--j) ... 阅读全文
posted @ 2016-07-29 11:18 Kurokey 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目链接:传送门 题目大意:略。。 题目思路:其实单就这道题来说,一个主件最多两个附件,且附件不再包含附件,所以很简单,但是如果主件的附件无限制,附件也可包含无限制的附件,应该怎么做? 首先推荐一篇论文 徐持衡的《浅谈几类背包题》,里面有详细的讲解,这一类树形依赖背包问题最终都能优化到 n*c 复杂 阅读全文
posted @ 2016-07-29 09:42 Kurokey 阅读(178) 评论(0) 推荐(0) 编辑