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

URAL 1073 Square Country(DP)

时间:2014-07-25 11:06:21      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:style   http   io   for   re   c   ar   line   

Square Country


大意: 买一块边长为 a 的正方形地需要的钱数是 a^2, 现在输入N为钱的数目,求最少购买地的块数可以凑够N。


思路:DP,由背包思想推出来的dp[i] = min(dp[i], dp[j-i*i]+1);  方块都是由正方形组成的,所以是i*i,循环的时候也是i*i。

#include <stdio.h>
#define min(a, b) ((a) > (b) ? (b) :(a))

int n;
int dp[60005];

int main()
{
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i){
        dp[i] = i;
    }
    for(int i = 1; i*i <= n; ++i){
        for(int j = i*i; j <= n; ++j){
            dp[j] = min(dp[j], dp[j-i*i]+1);
        }
    }
    printf("%d\n", dp[n]);

    return 0;
}


URAL 1073 Square Country(DP),布布扣,bubuko.com

URAL 1073 Square Country(DP)

标签:style   http   io   for   re   c   ar   line   

原文地址:http://blog.csdn.net/xuechelingxiao/article/details/38109411

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