Ural1073-Square Country
2016-12-05 16:37
387 查看
给定一个数n,求这个数最少由几个完全平方数相加得到。
状态转移方程:dp[i] = ∑dp[i-j*j]+1.
状态转移方程:dp[i] = ∑dp[i-j*j]+1.
#include <cstdio> #include <algorithm> const int maxn = 60000 + 5; const int inf = maxn; int dp[maxn]; int main(int argc, char const *argv[]) { int n; scanf("%d", &n); dp[0] = 0; for (int i = 1; i <= n; i++) { dp[i] = inf; for (int j = 0; j * j <= i; j++) { dp[i] = std::min(dp[i], dp[i-j*j] + 1); } } printf("%d\n", dp ); return 0; }
相关文章推荐
- Ural 1073 Square Country 解题报告
- Ural 1073. Square Country
- Ural 1073 Square Country (DP)
- ural 1073. Square Country
- URAL 1073. Square Country
- URAL1073——DP——Square Country
- Ural 1073 Square Country 解题报告
- Ural 1073 Square Country
- URAL 1073 Square Country
- 01背包 URAL 1073 Square Country
- Ural 1073 Square Country
- URAL 1073 Square Country(DP)
- ural 1073. Square Country
- 【完全背包】URAL - 1073 Square Country
- 回溯法——Ural 1073 Square Country
- ural 1073. Square Country
- ural 1073.Square Country(动态规划)
- ural 1073 Square Country
- URAL 1073 Square Country(DP)
- Ural_1073. Square Country(DP)