hdu1398 Square Coins ——DP
May 23, 2013
Hdu
DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1398 题目大意: 给一个数字,不大于300,求有多少种用完全平方数表示这个数字的方法 题目思路: 方法跟hdu1283一样一样的……只需要把那道题目的代码稍微改一下就可以过了
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
const int MAX = 32768+10;
long long d[MAX];
void solve() {
int n, i, j;
while (~scanf("%d", &n) && n) {
memset(d, 0, sizeof(d));
d[0] = 1;
for (i = 1; i <= floor(sqrt(n)); ++i) {
for (j = i*i; j <= n; ++j) {
d[j] += d[j-i*i];
}
}
printf("%lld\n", d[n]);
}
}
int main(void) {
solve();
return 0;
}
因为题目的范围很小嘛,只有300。