1. 程式人生 > >HDOJ 1028 數的拆分 (母函式)

HDOJ 1028 數的拆分 (母函式)

Ignatius and the Princess III

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 16742    Accepted Submission(s): 11783


Problem Description "Well, it seems the first problem is too easy. I will let you know how foolish you are later." feng5166 says.

"The second problem is, given an positive integer N, we define an equation like this:
  N=a[1]+a[2]+a[3]+...+a[m];
  a[i]>0,1<=m<=N;
My question is how many different equations you can find for a given N.
For example, assume N is 4, we can find:
  4 = 4;
  4 = 3 + 1;
  4 = 2 + 2;
  4 = 2 + 1 + 1;
  4 = 1 + 1 + 1 + 1;
so the result is 5 when N is 4. Note that "4 = 3 + 1" and "4 = 1 + 3" is the same in this problem. Now, you do it!"

Input The input contains several test cases. Each test case contains a positive integer N(1<=N<=120) which is mentioned above. The input is terminated by the end of file.

Output For each test case, you have to output a line contains an integer P which indicate the different equations you have found.

Sample Input 4 10 20
//
//  main.cpp
//  數的拆分(母函式的應用)
//
//  Created by 張嘉韜 on 16/1/26.
//  Copyright © 2016年 張嘉韜. All rights reserved.
//

#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
    //freopen("")
    int n,c1[200],c2[200];
    while(scanf("%d",&n)==1)
    {
        for(int i=0;i<=n;i++)
        {
            c1[i]=1;
            c2[i]=0;
        }
        for(int i=2;i<=n;i++)
        {
            for(int j=0;j<=n;j++)
            {
                for(int k=0;j+k<=n;k=k+i)
                {
                    c2[k+j]+=c1[j];
                }
            }
            for(int j=0;j<=n;j++)
            {
                c1[j]=c2[j];
                c2[j]=0;
            }
        }
        cout<<c1[n]<<endl;
    }
    return 0;
}
母函式解析http://blog.csdn.net/vsooda/article/details/7975485

相關推薦

HDOJ 1028 拆分 函式

Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1

HDOJ-1398 Square Coins函式/DP

題目描述 Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1

HDOJ 題目1709 The Balance函式

The Balance Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5756    Accepted Su

人工智慧新手入門——高多元函式

多元函式: 多元函式就是有多個因變數的函式,咱們之前接觸的函式基本都是一元的也就是  長成這樣的,接下來咱們要了解的多元函式是長成這樣的  。 概念: 接下來咱們引進一個概念來看一下: 北風

HDU1028 Ignatius and the Princess III函式

Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s)

2017多校訓練賽第一場 HDU 6042 函式

Journey with Knapsack Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 164    A

nyoj 整數劃分 90 函式

整數劃分 時間限制:3000 ms  |           記憶體限制:65535 KB 難度:3 描述 將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整數n的這種表示稱為正整數n的劃分。求正整數n的不

杭電ACM hdu 2152 Fruit 解題報告函式

Problem Description 轉眼到了收穫的季節,由於有TT的專業指導,Lele獲得了大豐收。特別是水果,Lele一共種了N種水果,有蘋果,梨子,香蕉,西瓜……不但味道好吃,樣子更是好看。 於是,很多人們慕名而來,找Lele買水果。 甚至連大名鼎鼎的HDU ACM

hdoj problem2084 動態規劃

數塔 http://acm.hdu.edu.cn/showproblem.php?pid=2084 Time Limit: 1000/1000 MS (Java/Others)    Memory L

HDU 2152函式

Problem Description 轉眼到了收穫的季節,由於有TT的專業指導,Lele獲得了大豐收。特別是水果,Lele一共種了N種水果,有蘋果,梨子,香蕉,西瓜……不但味道好吃,樣子更是好看。 於是,很多人們慕名而來,找Lele買水果。 甚至連大名鼎鼎的HDU ACM

hdu 2189 悼念512汶川大地震遇難同胞——來生一起走 函式

題目連結 媽媽 你別哭 淚光照亮不了 我們的路 讓我們自己 慢慢的走 媽媽 我會記住你和爸爸的模樣 記住我們的約定 來生一起走 加油,中國! #include"stdio.h" #include"ma

杭電ACM hdu 2082 找單詞 解題報告函式

Problem Description 假設有x1個字母A, x2個字母B,..... x26個字母Z,同時假設字母A的價值為1,字母B的價值為2,..... 字母Z的價值為26。那麼,對於給定的字母,可以找到多少價值<=50的單詞呢?單詞的價值就是組成一個單詞的所有

杭電ACM hdu 2079 選課時間 解題報告函式

Problem Description 又到了選課的時間了,xhd看著選課表發呆,為了想讓下一學期好過點,他想知道學n個學分共有多少組合。你來幫幫他吧。(xhd認為一樣學分的課沒區別)Input輸入資料的第一行是一個數據T,表示有T組資料。每組資料的第一行是兩個整數n(1

HDU 1709 函式

The Balance Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot

卡特蘭通項公式函式,牛頓展開

組合意義非常顯然,經典的路徑問題。這裡主要討論母函式以及牛頓展開的證明。 考慮卡特蘭數的遞推式,發現這是一個卷積式 令 f (

HDU 1028 函式或者dp

“The second problem is, given an positive integer N, we define an equation like this: N=a[1]+a[2]+a[3]+…+a[m]; a[i]>0,1<

【POJ - 1664】放蘋果 遞迴經典題 或 dp 或 函式

題幹: 把M個同樣的蘋果放在N個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。 Input 第一行是測試資料的數目t(0 <= t <= 20)。以下每行均包含二個整數M和N,以空格分開。1<=M,N&

Oracle資料庫欄位資料拆分成多行REGEXP_SUBSTR函式

做多選功能時為了簡便,會在某個欄位中儲存多個值,儲存時雖然省事,但後續的查詢統計時還需要拆分資料才行,因此這時需要將欄位內的值分成多行以便後續使用。 下面這個例子實現了欄位內資料的拆分: --建立測試表 create table t_test( t_type_id varchar2

納新題】湊數題恰好裝滿類0-1揹包 或 函式

題幹: 描述 小Q手裡有n枚硬幣,每枚硬幣有一定的金額x,他想知道,用這些硬幣能組成多少種不同的金額。但是他太笨了,自己數懵了,你來幫幫他好不好? 注意:組成金額時,每枚硬幣只能用一次,但可以同時使用等面值的不同硬幣 輸入 第一行 n,表示第二行一共有n個數

基本函式 + 指數型函式【板子】

啥時候忘了就及時學習學習: 連結如下 : 母函式 指數型母函式 相關PPT 因為都是板子題,不解釋啦 基本母函式板子: 題意:給你一些水果,讓你從中挑選m個水果,並且規定每種水果挑選時的數量,求方案數 參考程式碼 #includ