zoukankan      html  css  js  c++  java
  • UVA 10465 Homer Simpson

    完全背包问题,今天才知道0、1背包就是每种物品只有一个,而完全背包就是每种不限。这题又是抄的,不过我自己独立地敲了一遍。

     1 #include<stdio.h>
     2 #include<string.h>
     3 #define MAXN 10010
     4 int f[MAXN],num[MAXN],a[4];
     5 int main()
     6 {
     7     int T,i,j;
     8     while(~scanf("%d%d%d",&a[1],&a[2],&T))
     9     {
    10         memset(f,0,sizeof(f));
    11         memset(num,0,sizeof(f));
    12         for(i = 1; i < 3; i++)
    13             for(j = a[i]; j <= T; j++)
    14                 if(f[j - a[i]] + a[i] > f[j])
    15                     f[j] = f[j - a[i]] + a[i],
    16                     num[j] = num[j - a[i]] + 1;
    17                 else if(f[j - a[i]] + a[i] == f[j] && num[j - a[i]] + 1 > num[j])
    18                     num[j] = num[j - a[i]] + 1;
    19         if(f[T] == T)
    20             printf("%d\n",num[T]);
    21         else
    22             printf("%d %d\n",num[T],T-f[T]);
    23     }
    24     return 0;
    25 }

    其中f[j]表示填充一个容积为j的包最多能填多少空间,num[j]就是对应的使用物品总数。

  • 相关阅读:
    OpenSSL证书生成
    支付宝支付流程
    前端获取用户位置信息
    微信公众号开发(三)
    微信公众号开发(二)
    微信公众号开发(一)
    前端优化
    页面自适应
    CSS样式(二)
    CSS样式(一)
  • 原文地址:https://www.cnblogs.com/lzxskjo/p/2468762.html
Copyright © 2011-2022 走看看