首页 > 代码库 > 01背包模板
01背包模板
转载请注明出处:http://blog.csdn.net/u012860063
模版就直接贴代码:
01背包问题 01背包问题的特点是,每种物品仅有一件,可以选择放或不放。 01背包问题描述: 有N件物品和一个容量为V的背包。第i件物品的重量是c[i],价值是w[i]。 求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。 #include <stdio.h> int max(int x,int y) { int M; M=x>y ? x : y; return M; } int w[1050005],d[1050005],f[1050005]; int main() { int i, j, n, m; while(scanf("%d",&n)!=EOF) { scanf("%d", &m); for(i=0; i<n; i++) scanf("%d%d", &w[i],&d[i]);//w[i]为重量,d[i]为价值 for(i=0; i<n; i++) { for(j=m; j>=w[i]; j--) f[j] = max(f[j], f[j-w[i]]+d[i]); } printf("%d\n",f[m]); } return 0; } 此程序为poj3624
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。