题目大意:有面值分别为。1,4,9,.......17^2的硬币无数多个。问你组成面值为n的钱的方法数。
最简单的母函数模板题:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
#include <cstdio> #include <cstring> using
namespace std; int c1[305],c2[305],n; int main(){ while ( scanf ( "%d" ,&n),n){ for ( int
i=0;i<=n;i++)c1[i]=1,c2[i]=0; for ( int
i=2;i<18;i++){ for ( int
j=0;j<=n;j++){ for ( int
k=0;k+j<=n;k+=i*i)c2[j+k]+=c1[j]; } memcpy (c1,c2, sizeof
c2); memset (c2,0, sizeof
c2); } printf ( "%d\n" ,c1[n]); } } |
HDU 1398 Square Coins,布布扣,bubuko.com
原文:http://www.cnblogs.com/forever97/p/3662345.html