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。  

comments powered by Disqus