原题链接:http://acm.timus.ru/problem.aspx?space=1&num=1073

分析:dp,dp[i]表示钱为i且恰好用完时能买的最少土地数,易知dp[i]=min(i,dp[i-j*j]+1)(1<=j<=sqrt(i)).

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<stack>
#define ll long long
#define maxn 60005
using namespace std;
int dp[maxn];
void solve()
{
memset(dp,0,sizeof(dp));
dp[0]=0;dp[1]=1;dp[2]=2;dp[3]=3;dp[4]=1;
for(int i=5;i<=60000;i++)
{
dp[i]=i;
for(int j=1;j*j<=i;j++)
dp[i]=min(dp[i],dp[i-j*j]+1);
}
}
int main()
{
int n;
solve();
cin>>n;
cout<<dp[n]<<endl;
return 0;
}

最新文章

  1. IOS开发基础知识--碎片31
  2. Dual Number
  3. javase基础复习攻略《八》
  4. Windows Azure Cloud Service (11) PaaS之Web Role, Worker Role(上)
  5. Spring MVC 事务配置
  6. Discuz 7.2 /faq.php SQL注入漏洞
  7. hdu4293Groups
  8. 4 Java学习之 反射Reflection
  9. expect 传参
  10. What’s New in Python 2.7 — Python 3.4.0b2 documentation
  11. c#后台输出javascript语句和一些通用验证的类
  12. 如何让celery接受定制的参数
  13. Linux指令--more,less
  14. freemarker.template.TemplateException:Error executing macro:mainSelect
  15. 死磕 java集合之CopyOnWriteArraySet源码分析——内含巧妙设计
  16. 扩展欧几里得(exgcd)与同余详解
  17. oracle插入数据问题
  18. Excel操作
  19. 在c++中实现反射的初步想法
  20. 给Android组件添加事件一个很好用的方法

热门文章

  1. 二叉树的深度&lt;java版&gt;
  2. 136.只出现一次的数字 leetcode ^运算符 JavaScript解法
  3. 廖雪峰git笔记
  4. 从零开始的Python学习Episode 11——装饰器
  5. Tensorflow、Pytorch、Keras的多GPU使用
  6. 复利计算器4.0之再遇JUnit
  7. pspo过程文档
  8. A10
  9. Floyd模板(详细操作最基础版)
  10. TCP系列41—拥塞控制—4、Linux中的慢启动和拥塞避免(一)