zoukankan      html  css  js  c++  java
  • HDU 1284 钱币兑换问题(母函数)

    钱币兑换问题

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 2351    Accepted Submission(s): 1279

    Problem Description

    在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。

    Input

    每行只有一个正整数N,N小于32768。

    Output

    对应每个输入,输出兑换方法数。

    Sample Input

    2934

    12553

    Sample Output

    718831

    13137761

     Author

    SmallBeer(CML)

    Source

    杭电ACM集训队训练赛(VII)

    Recommend

    lcy

    解题报告:题目和HDU1028一样,只是这儿是拆分成1,2,3;直接套用母函数模板即可

    代码如下:

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    const int N=32767;
    int c1[N],c2[N];
    void Mu()
    {
    int i,j,k;
    for(i=0;i<=N;i++)
    {
    c1[i]=1;
    c2[i]=0;
    }
    for(i=2;i<=3;i++)
    {
    for(j=0;j<=N;j++)
    {
    for(k=0;k+j<=N;k=k+i)
    {
    c2[j+k]+=c1[j];
    }
    }
    for(j=0;j<=N;j++)
    {
    c1[j]=c2[j];
    c2[j]=0;
    }
    }
    }
    int main()
    {
    int n;
    Mu();
    while(scanf("%d",&n)!=EOF)
    {
    printf("%d\n",c1[n]);
    }
    return 0;
    }



  • 相关阅读:
    添加右键菜单
    闭包和迭代器
    函数的进阶
    函数入门
    文件操作
    深浅拷贝
    小数据池和再谈编码
    字典
    list tuple
    int bool str
  • 原文地址:https://www.cnblogs.com/lidaojian/p/2264635.html
Copyright © 2011-2022 走看看