摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1028题意: 给你个数N,要你拆分成很多个数字的和。坑爹: 但不能出现 4 = 3 + 1 和 4 = 1 + 3 这样是算重复的。解法: 每次对一个数N进行 ( 1 - N)的放与不放的试探, 比如说5,不放5的最优解就是在与现在相同负重的时候放了4的解,放5分就等于 f [j-5] + weight 这两种情况加起来就是 5 的最优情况。View Code 1 #include<iostream> 2 using namespace std; 3 4 const int maxn = 120 阅读全文
posted @ 2012-09-13 11:23
pc....
阅读(199)
评论(0)
推荐(0)
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2159题意: 给出的n , m , k ,s 分别代表还需n经验升级、还有m耐久度、下面有k组数据、最多能杀s只怪,下面k组的a和b分别代表杀一只这种怪要消耗b耐久度获得a经验,让你计算出在耐久度和杀怪数范围内能不能获得题目给出的经验。坑爹: 一开始我想的时候以为是多重背包的问题,我以为是每种怪都能杀s次,其实是总共只能杀s只怪,所以不能用多重背包做。解法: 二维费用的背包问题,用一个DP的二维数组,DP[ i][ j] i 代表杀怪数 , j 代表耐久度 。因为每个怪可以打多次,所以Pack函数里的循... 阅读全文
posted @ 2012-09-13 11:04
pc....
阅读(303)
评论(0)
推荐(0)
浙公网安备 33010602011771号