zoukankan      html  css  js  c++  java
  • 人活着系列之平方数 (背包)

    人活着系列之平方数

    Time Limit: 1000MS Memory limit: 65536K

    题目描写叙述

    偶然和必定?命运与意志?生与死?理性与情感?价值与非价值?在“人活着是为什么?”的问题面前都变成无意义了。婚姻?家庭?事业?爱情?这何尝不是一种借口,去诠释活着的第二种理由。听起来显得堂而皇之中的一个点罢了。

    所以活着的同一时候,为什么不做一做平方数?

    平方数是指能够写成某个整数的平方的数。比如1,4,9等。如今我们有20个平方数,它们各自是1^2。2^2,3^2,4^2......20^2,我们想知道对于一个整数n。它能够表示成多少种平方数的和,注意每一个平方数能够使用无限次。

     
    比如 n = 10,那么 
    10 = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1;
    10 = 1 + 1 + 1 + 1 + 1 + 1 + 4;
    10 = 1 + 1 + 4 + 4;
    10 = 1 + 9;
    因此整数10能够表示成4种平方数的和。

    输入

     多组输入,每组输入一行,表示正整数n(1 <= n <= 500)

    输出

     对于每一组。输出一行,代表整数n能够表示成平方数和的种数。

    演示样例输入

    2
    10
    30

    演示样例输出

    1
    4
    27

    提示

    原型 是 :HDU 钱币兑换问题
    水题

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <math.h>
    #include <cstdlib>
    #include <algorithm>
    #define LL long long
    const int INF = 1e6;
    using namespace std;
    LL int dp[501];
    int main()
    {
        int n;
        memset(dp,0,sizeof(dp));
        int a[21];
        for(int j = 1; j<=20; j++)
        {
            a[j] = j*j;
        }
        memset(dp,0,sizeof(dp));
        dp[0] = 1;
       // dp[1] = 1;
        for(int i = 1; i<=20; i++)
        {
            for(int j = a[i]; j<=501; j++)
            {
                dp[j] += dp[j - a[i]];
            }
        }
        
        while(~scanf("%d",&n))
            cout<<dp[n]<<endl;
        return 0;
    }
    


  • 相关阅读:
    Team Foundation Sidekicks 2010
    Asp.net页面传值的方式汇总
    轻量级IOC框架Ninject使用
    AutoMapper使用简单总结
    页面请求的方式(Get与Post)
    总结2012 规划2013
    在reset css后两个input之间还是出现默认间隔的问题。
    js学习笔记事件委托
    程序猿工具——svn
    JS 事件添加onclick写法注意。
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7259842.html
Copyright © 2011-2022 走看看