首页 > 代码库 > Hrbust1053 Warcraft III (完全背包)
Hrbust1053 Warcraft III (完全背包)
本文出自:http://blog.csdn.net/svitter
原题:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1053
题意:完全背包不解释。。直接贴代码。。
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; #define max(a, b) a > b? a : b struct Unit { int val; int cost; }; Unit unit[100000]; int f[100000]; void ace() { //work point int t; int i, j, k; //num int g, u, n; // n means size cin >> t; while(t--) { memset(f, 0 ,sizeof(f)); scanf("%d%d", &g, &u); for(i = 0; i < u; i++) { scanf("%d%d", &unit[i].val, &unit[i].cost); } for(i = 0; i < u; i++){ n = g - unit[i].cost; for(j = 0; j <= n; j++){ f[j + unit[i].cost] = max(f[j +unit[i].cost], f[j] + unit[i].val); } } printf("%d\n", f[g]); } } int main() { ace(); return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。