zoukankan      html  css  js  c++  java
  • HDU 1085 Holding BinLaden Captive!

    HDU_1085

        这个题目可以用完全背包问题的思路去解,为了练一下生成函数,我就用生成函数的思路写了一下,构造生成函数G(x)=(1+x+x^2+…+x^n1)(1+x^2+x^4+…+x^(2*n2))(1+x^5+x^25+…+x^(5*n3)),最后按x,x^2…的顺序看哪一项的系数为0即可。

    #include<stdio.h>
    #include<string.h>
    #define MAXD 5
    #define MAXM 8000
    int f[MAXD][MAXM], elem[] = {0, 1, 2, 5}, num[MAXD], S;
    int init()
    {
    int i;
    S = 0;
    for(i = 1; i <= 3; i ++)
    {
    scanf("%d", &num[i]);
    S += elem[i] * num[i];
    }
    return S;
    }
    void solve()
    {
    int i, j, k;
    for(i = 0; i <= 3; i ++)
    for(j = 0; j <= S + 1; j ++)
    f[i][j] = 0;
    f[0][0] = 1;
    for(i = 1; i <= 3; i ++)
    for(j = 0; j <= num[i]; j ++)
    for(k = 0; k + j * elem[i] <= S; k ++)
    f[i][k + j * elem[i]] |= f[i - 1][k];
    for(i = 1; f[3][i]; i ++);
    printf("%d\n", i);
    }
    int main()
    {
    while(init())
    {
    solve();
    }
    return 0;
    }


  • 相关阅读:
    sort排序
    js数组
    json数据格式 与 for in
    js 定时器
    鼠标滚轮事件
    cookie
    POJ 2387 Til the Cows Come Home
    POJ 1459 Power Network
    HDU 5389 Zero Escape
    HDU 5387 Clock
  • 原文地址:https://www.cnblogs.com/staginner/p/2381236.html
Copyright © 2011-2022 走看看