首页 > 其他 > 详细

poj 1276 多重背包

时间:2014-08-18 10:44:03      阅读:314      评论:0      收藏:0      [点我收藏+]
#include <iostream>
using namespace std;
int cash, n, m[13], d[13];
int f[100100];
int money, i, v, temp, k;
int solve() {
 memset(f, 0, sizeof(f));
 money = 0;
 f[0] = 1;
 for (i=1; i <= n; i++) {
  for (v=cash; v >=0; v--) {
   if (f[v]) {
    for (k=1; k <= m[i]; k++) {
     temp = v + k*d[i];
     if (temp > cash) break;
     if (temp > money) money = temp;
     f[temp] = 1;
    }
   }
  }
 }
 return money;
}
int main()
{
 while (scanf("%d %d", &cash, &n) != EOF) {
  for (i=1; i <= n; i++) {
   scanf("%d %d", &m[i], &d[i]);
  }
  printf("%d\n", solve());
 }
 return 0;
}

poj 1276 多重背包,布布扣,bubuko.com

poj 1276 多重背包

原文:http://www.cnblogs.com/2014acm/p/3918929.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!