UVA 147 - Dollars(母函数)
看着就像赤裸裸的母函数,目测10*30000*30000的复杂度会超吧,试试的打吧,特搞笑的好几个月没打了,哎,啥也忘了。。。找找以前做的题,复习了下。。中间小错误不断,最后竟然AC了。。。本来还想打表的。。
1 #include <stdio.h> 2 #include <string.h> 3 #define N 30010 4 #define eps 0.00000001 5 long long p1[N],p2[N]; 6 int main() 7 { 8 int a[12] = {5,10,20,50,100,200,500,1000,2000,5000,10000}; 9 int i,j,k; 10 double n; 11 p1[0] = 1; 12 for(i = 0;i <= 10;i ++) 13 { 14 for(j = 0;j <= 30000;j ++) 15 { 16 for(k = 0;;k += a[i]) 17 { 18 if(k+j > 30000) break; 19 p2[k+j] += p1[j]; 20 } 21 } 22 for(j = 0;j <= N;j ++) 23 { 24 p1[j] = p2[j]; 25 p2[j] = 0; 26 } 27 } 28 while(scanf("%lf",&n)!=EOF) 29 { 30 if(n == 0) break; 31 k = (int)(n*100+eps); 32 printf("%6.2lf%17lld\n",n,p1[k]); 33 } 34 return 0; 35 }