zoukankan      html  css  js  c++  java
  • Hdu 1059 Dividing & Zoj 1149 & poj 1014 Dividing(多重背包)


    多重背包模板~

    #include <stdio.h>
    #include <string.h>
    
    int a[7];
    int f[100005];
    int v, k;
    
    void ZeroOnePack(int cost, int weight)
    {
        for (int i = v; i >= cost; i--)
            if (f[i - cost] + weight > f[i])
                f[i] = f[i - cost] + weight;
    }
    void CompletePack(int cost, int weight)
    {
        for (int i = cost; i <= v; i++)
            if (f[i - cost] + weight > f[i])
                f[i] = f[i - cost] + weight;
    }
    void MultiplePack(int cost, int  weight, int amount)
    {
        if (cost * amount >= v) CompletePack(cost, weight);
        else {
            for (int k = 1; k < amount;) {
                ZeroOnePack(k * cost, k * weight);
                amount -= k;
                k <<= 1;
            }
            ZeroOnePack(amount * cost, amount * weight);
        }
    }
    
    int main()
    {
        int sum;
        int cas = 0;
        while (1) {
            sum = 0;
            for (int i = 1; i < 7; i++) {
                scanf("%d", &a[i]);
                sum += a[i] * i;
            }
            if (sum == 0) break;
            if (sum % 2 == 1) {
                printf("Collection #%d:
    Can't be divided.
    
    ", ++cas);
                continue;
            } else {
                v = sum / 2;
                memset(f, 0, sizeof(f));
                for (int i = 1; i < 7; i++)
                    MultiplePack(i, i, a[i]);
                if (f[v] == v)
                    printf("Collection #%d:
    Can be divided.
    
    ", ++cas);
                else
                    printf("Collection #%d:
    Can't be divided.
    
    ", ++cas);
            }
        }
        return 0;
    }
    


  • 相关阅读:
    【JavaScript】--ajax
    【Django】--Models 和ORM以及admin配置
    【Django】--基础知识
    【jQuery】--图片轮播
    双系统 windows引导项添加
    LVM
    linux安全加固
    oracle 11G 配置侦听文件
    LVM
    《virtual san 最佳实践》节选 Virtual SAN的发展与现状
  • 原文地址:https://www.cnblogs.com/james1207/p/3279663.html
Copyright © 2011-2022 走看看