zoukankan      html  css  js  c++  java
  • Luogu2737 USACO4.1麦香牛块(动态规划)

      小凯的疑惑升级版。只有两个数的话不能表示的最大数是ab-a-b,显然如果可选数增加不会比这更大,所以只要答案存在一定小于256*256-2*256。在这个范围内背包即可。

    #include<iostream> 
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int read()
    {
        int x=0,f=1;char c=getchar();
        while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
        while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
        return x*f;
    }
    #define N 12
    int n,a[N];
    bool f[70000];
    int main()
    {
    #ifndef ONLINE_JUDGE
        freopen("cow.in","r",stdin);
        freopen("cow.out","w",stdout);
        const char LL[]="%I64d
    ";
    #else
        const char LL[]="%lld
    ";
    #endif
        n=read();
        for (int i=1;i<=n;i++) a[i]=read();
        f[0]=1;
        for (int j=1;j<70000;j++)
            for (int i=1;i<=n;i++)
            if (j>=a[i]) f[j]|=f[j-a[i]];
        if (!f[69999]) {cout<<0;return 0;} 
        for (int i=69999;i>=0;i--) if (!f[i]) {cout<<i;return 0;}
        cout<<0;
        return 0;
    }
  • 相关阅读:
    2020.8月总结
    fps逆向总结
    fps人物基址的寻找
    python学习_012
    python学习_011
    python学习_010
    python学习_009
    python学习_008
    pytorch DataLoader模块的使用
    python 继承类的初始化用法
  • 原文地址:https://www.cnblogs.com/Gloid/p/9867135.html
Copyright © 2011-2022 走看看