zoukankan      html  css  js  c++  java
  • HDU 1171 Big Event in HDU 母函数

    就是一个多重背包可行性判断,范围不大的话也可以用母函数处理出所有的情况、

    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <climits>
    #include <string>
    #include <iostream>
    #include <map>
    #include <cstdlib>
    #include <list>
    #include <set>
    #include <queue>
    #include <stack>
    
    using namespace std;
    
    typedef long long LL;
    const int maxn = 55;
    const int maxv = 50 * 50 * 100 + 5;
    int c1[maxv],c2[maxv];
    int val[maxn],cnt[maxn],n;
    
    int main() {
        while(scanf("%d",&n),n >= 0) {
            int sum = 0;
            for(int i = 0;i < n;i++) {
                scanf("%d%d",&val[i],&cnt[i]);
                sum += val[i] * cnt[i];
            }
            memset(c1,0,sizeof(int) * sum);
            memset(c2,0,sizeof(int) * sum);
            c1[0] = 1;
            for(int i = 0;i < n;i++) {
                for(int j = 0;j <= cnt[i];j++) {
                    for(int k = 0;val[i] * j + k <= sum;k++) {
                        c2[val[i] * j + k] += c1[k];
                    }
                }
                for(int j = 0;j <= sum;j++) {
                    c1[j] = c2[j]; c2[j] = 0;
                }
            }
            int mindelta = INT_MAX,a1 = 0,a2 = 0;
            for(int i = 0;i <= sum;i++) if(c1[i]) {
                int nowd = abs(2 * i - sum);
                if(nowd < mindelta) {
                    mindelta = nowd;
                    a1 = max(i,sum - i);
                    a2 = sum - a1;
                }
            }
            printf("%d %d
    ",a1,a2);
        }
        return 0;
    }
    

      

  • 相关阅读:
    557. Reverse Words in a String III
    14. Longest Common Prefix
    linux 修改系统时间 同步网络时间
    Django学习
    mysql操作
    mysql ,shell代码
    mysql学习
    Mac环境下mysql安装以及登录
    Mac自带Apache服务器的使用
    MongoDB连接数据库
  • 原文地址:https://www.cnblogs.com/rolight/p/3896705.html
Copyright © 2011-2022 走看看