完美平方

给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。

给出 n = 12, 返回 3 因为 12 = 4 + 4 + 4
给出 n = 13, 返回 2 因为 13 = 4 + 9

dp.

/* ***********************************************
Author        :guanjun
Created Time  :2016/8/31 17:17:39
File Name     :1.cpp
************************************************ */
#include <iostream>
#include <vector>
#include <cmath>
#include <string.h>
using namespace std;
int dp[1010];
int n;
int main()
{
    #ifndef ONLINE_JUDGE
    //freopen("in.txt","r",stdin);
    #endif
    //freopen("out.txt","w",stdout);
    while(cin>>n){
        //dp[i]表示 组成i的最小完全平方数的个数
        //那么 dp[i]=(dp[i],dp[i-j*j]+1)
        //初始化 全是1组成的情况
        for(int i=1;i<=n;i++)dp[i]=i;
        for(int i=1;i<=n;i++){
            for(int j=1;j*j<=i;j++){
                dp[i]=min(dp[i],dp[i-j*j]+1);
            }
        }
        cout<<dp[n]<<endl;
    }
    return 0;
}
时间: 2025-01-16 05:23:20

完美平方的相关文章

lintcode:完美平方

题目 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n.你需要让平方数的个数最少. 样例 给出 n = 12, 返回 3 因为 12 = 4 + 4 + 4.给出 n = 13, 返回 2 因为 13 = 4 + 9. 解题 题目标签:深度优先遍历 下面的深搜,通过找到所有结果,再找出最短的那个 public class Solution { /** * @param n a positive integer * @return an integer

leetcode题解日练--2016.7.16

日练三题,冰冻三尺非一日之寒. 今日题目:1.顶端迭代器:2.完美平方数:3.根节点到叶节点数字和. 今日摘录: 人生是一场旅程.我们经历了几次轮回,才换来这个旅程.而这个旅程很短,因此不妨大胆一些,不妨大胆一些去爱一个人,去攀一座山,去追一个梦--有很多事我都不明白.但我相信一件事.上天让我们来到这个世上,就是为了让我们创造奇迹 ---<大鱼海棠> 284. Peeking Iterator | Difficulty: Medium Given an Iterator class inter

POJ1730_Perfect Pth Powers【水题】

Perfect Pth Powers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16699 Accepted: 3786 Description We say that x is a perfect square if, for some integer b, x = b2. Similarly, x is a perfect cube if, for some integer b, x = b3. More gener

Python终极coding

作为一名程序员,除了需要具备解决问题的思路以外,代码的质量和简洁性也很关键.因为从一个人的代码可以直接看出你的基本功.对于Python而言,这就意味着你需要对Python的内置功能和库有很深入的了解. 本篇给大家介绍一些很强大的功能,它们能让面试官眼前一亮,觉得你很高级,这可以很大程度上给你加分.对于这些功能,我们从Python内置函数开始,然后是Python对数据结构的天然支持,最后是Python强大的标准库. 选择正确的内置功能 Python有一个大型标准库,但只有一个内置函数的小型库,这些

[LeetCode] Perfect Number 完美数字

We define the Perfect Number is a positive integer that is equal to the sum of all its positive divisors except itself. Now, given an integer n, write a function that returns true when it is a perfect number and false when it is not. Example: Input:

哈希表和完美哈希

我们知道,通过对数组进行直接寻址(Direct Addressing),可以在 O(1) 时间内访问数组中的任意元素.所以,如果存储空间允许,可以提供一个数组,为每个可能的关键字保留一个位置,就可以应用直接寻址技术. 哈希表(Hash Table)是普通数组概念的推广.当实际存储的的关键字数比可能的关键字总数较小时,这时采用哈希表就会比使用直接数组寻址更为有效.因为哈希表通常采用的数组尺寸与所要存储的关键字数是成比例的. 哈希表是一种动态集合数据结构,在一些合理的假设下,在哈希表中查找一个元素的

HDU 4512——吉哥系列故事——完美队形I——————【LCIS应用】

吉哥系列故事——完美队形I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2707    Accepted Submission(s): 886 Problem Description 吉哥这几天对队形比较感兴趣. 有一天,有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些

09.怎么取一个完美次幂

一个完美的功率为正整数的分类: 在数学中,完美的电源是可被表示为另一个正整数的整数次幂的正整数.更正式地说,n是一个完美的功率,如果存在自然数m> 1,并且k> 1,使得米? = N. 你的任务是检查wheter一个给定的整数是一个完美的动力.如果它是一个完美的电源,返回一对m和k具有m ? = N作为证明.否则返回Nothing,Nil,null,None或者你的语言的等价物. 注:对于一个完美的动力,可能有几双.例如81 = 3^4 = 9^2,所以(3,4)和(9,2)有效的解决方案.然

小波变换-完美通俗解读

小波变换和motion信号处理一 这是<小波变换和motion信号处理>系列的第一篇基础普及.第 二篇我准备写深入小波的东西第三篇讲解应用. 记得我还在大四的时候在申请出国和保研中犹豫了好一阵骨子里 的保守最后让我选择了先保研.当然后来也退学了不过这是后话. 当时保研就要找老板实验室自己运气还不错进了一个在本校很 牛逼的实验室干活路.我们实验室主要是搞图像的实力在全国也是 很强的进去后和师兄师姐聊大家都在搞什么小波变换H264之 类的.当时的我心思都不在这方面尽搞