zoukankan      html  css  js  c++  java
  • P2737 [USACO4.1]麦香牛块Beef McNuggets

    题目描述

    农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块。奶牛们正在想尽一切办法让这种可怕的设想泡汤。奶牛们进行斗争的策略之一是“劣质的包装”。“看,”奶牛们说,“如果你只用一次能装3块、6块或者10块的三种包装盒包装麦香牛块,你就不可能满足一次只想买1、2、4、5、7、8、11、14或者17块麦香牛块的顾客了。劣质的包装意味着劣质的产品。”

    你的任务是帮助这些奶牛。给出包装盒的种类数N(1<=N<=10)和N个代表不同种类包装盒容纳麦香牛块个数的正整数(1<=i<=256),输出顾客不能用上述包装盒(每种盒子数量无限)买到麦香牛块的最大块数。如果所有购买方案都能得到满足或者不存在不能买到块数的上限,则输出0。 不能买到的最大块数(倘它存在)不超过2,000,000,000。

    输入输出格式

    输入格式:

    第1行: 包装盒的种类数N

    第2行到N+1行: 每个种类包装盒容纳麦香牛块的个数

    输出格式:

    输出文件只有一行数字:顾客不能用包装盒买到麦香牛块的最大块数或0(如果所有购买方案都能得到满足或者顾客不能买到的块数没有上限)。

    输入输出样例

    输入样例#1:
    3
    3
    6
    10
    输出样例#1:
    17

    说明

    题目翻译来自NOCOW。

    USACO Training Section 4.1

    代码

    很容易看出是完全背包,但是这个可怕的上界

    所以考虑缩小上界,用到最大不可表数a*b-a-b(小凯的疑惑)

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=300+10,maxm=10000000+10;
    int a[maxn];
    int f[maxm];
    inline int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}
        return x*f;
    }
    int main()
    {
        int n=read();
        for(int i=1;i<=n;i++)
        {
            a[i]=read();
            if(a[i]==1){printf("0
    ");break;}
        }
        f[0]=1;
        for(int i=1;i<=n;i++)
          for(int j=a[i];j<=2500000;j++)
              f[j]|=f[j-a[i]];
        for(int i=2500000;i>=0;i--)
            if(!f[i])
            {
            if(i>2000000)i=0;
            printf("%d
    ",i);
            exit(0);
            }
        return 0;
    }
    View Code
  • 相关阅读:
    宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
  • 原文地址:https://www.cnblogs.com/DriverBen/p/10811936.html
Copyright © 2011-2022 走看看