HDOJ 1398 生成函数

Posted Flowersea

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDOJ 1398 生成函数相关的知识,希望对你有一定的参考价值。

链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1398

题意:

给你17种硬币,面值分别为1²,2²,3²,4²……

询问组成n元有多少种方法

代码:

31 int n;
32 int v[20];
33 int a[310], b[310], last;
34 
35 int main() {
36     rep(i, 0, 18) v[i] = i*i;
37     a[0] = 1;
38     rep(i, 1, 18) {
39         memset(b, 0, sizeof(b));
40         for (int j = 0; j*v[i] < 310; j++)
41             for (int k = 0; k + j*v[i] < 310; k++)
42                 b[k + j*v[i]] += a[k];
43         memcpy(a, b, sizeof(b));
44     }
45     while (cin >> n, n) cout << a[n] << endl;
46     return 0;
47 }

 

以上是关于HDOJ 1398 生成函数的主要内容,如果未能解决你的问题,请参考以下文章

hdu1398 普通母函数的应用 解决多重集组合问题

*HDU 1398 母函数

HDU1398(稍高级一些的母函数,对之前的补充)

hdu 1398 Square Coins(母函数)

HDU 1398 Square Coins(母函数或DP)

1398短信计费