码迷,mamicode.com
首页 > 其他好文 > 详细

01背包 URAL 1073 Square Country

时间:2015-05-09 16:25:33      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:

 

题目传送门

 1 /*
 2     题意:问n最少能是几个数的平方和
 3     01背包:j*j的土地买不买的问题
 4     详细解释:http://www.cnblogs.com/vongang/archive/2011/10/07/2200721.html
 5 */
 6 #include <cstdio>
 7 #include <algorithm>
 8 #include <cmath>
 9 #include <cstring>
10 using namespace std;
11 
12 const int MAXN = 6e4 + 10;
13 const int INF = 0x3f3f3f3f;
14 int dp[MAXN];
15 
16 int main(void)        //URAL 1073 Square Country
17 {
18     //freopen ("I.in", "r", stdin);
19 
20     int n;
21     while (scanf ("%d", &n) == 1)
22     {
23         memset (dp, 0, sizeof (dp));
24         for (int i=1; i<=n; ++i)
25         {
26             dp[i] = dp[i-1] + 1;
27             for (int j=2; j<=sqrt (n*1.0); ++j)
28             {
29                 if (i >= j * j)    dp[i] = min (dp[i], dp[i-j*j] + 1);
30                 else    break;
31             }
32         }
33 
34         printf ("%d\n", dp[n]);
35     }
36 
37 
38     return 0;
39 }

 

01背包 URAL 1073 Square Country

标签:

原文地址:http://www.cnblogs.com/Running-Time/p/4490512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!