JOYOI 自然數拆分Lunatic版

2021-08-18 21:29:24 字數 1288 閱讀 3090

題目背景

話說小小魚看了p1171(自然數拆分)之後感覺異常不爽,於是異常**地將題目加強。

題目描述

輸入自然數n,然後將其拆分成由若干數相加的形式,參與加法運算的數可以重複。

輸入格式

輸入只有乙個整數n,表示待拆分的自然數n。 0

<=4000

ps:0也算自然數,所以這裡應該寫正整數比較好

但是為了尊重原作者的版權(這有版權嗎-

-),沒有改掉。

本來n是要到5000的,但是開到5000的話我的程式就memory

limit

exceeded了。。

輸出格式

輸出乙個數,即所有方案數

因為這個數可能非常大,所以你只要輸出這個數 mod

2147483648 的餘數即可。

提示解釋:

輸入7,則7拆分的結果是

7=1+6

7=1+1+5

7=1+1+1+4

7=1+1+1+1+3

7=1+1+1+1+1+2

7=1+1+1+1+1+1+1

7=1+1+1+2+2

7=1+1+2+3

7=1+2+4

7=1+2+2+2

7=1+3+3

7=2+5

7=2+2+3

7=3+4

一共有14種情況,所以輸出14

mod2147483648,即14小小魚加強admin的p1171

ps:雖說加強了,但是好像還是很簡單。。。

樣例資料

輸入樣例 #1 輸出樣例 #1714

完全揹包,物品數字,容量n。

//stay foolish,stay hungry,stay young,stay ******

#include

#include

#include

using

namespace

std;

const

int maxn=5005;

const

long

long mod=2147483648;

inline

int rd()

return ret*f;

}long

long f[maxn],a[maxn];

int n,m;

int main()

}cout

<<(f[n]>0?f[n]-1:mod-1)0;}

自然數拆分

描述 description 輸入自然數n,然後將其拆分成由若干數相加的形式,參與加法運算的數可以重複。輸入格式 inputformat 輸入只有乙個整數n,表示待拆分的自然數n。n 80 輸出格式 outputformat 輸出乙個數,即所有方案數 樣例輸入 sampleinput 複製資料 7 ...

自然數拆分

問題描述 自然數的拆分 任何乙個大於1的自然數n,總可以拆分成若干個自然數之和,並且有多種拆分方法。試求 n的所有拆分。例如自然數5,可以有如下一些拆分方法 5 1 1 1 1 1 5 1 1 1 2 5 1 2 2 5 1 4 5 2 3 注意,本題中n拆分出來的數x的範圍是1 x整數劃分可以參考...

自然數拆分

題目 給出sum min max和n四個正整數,請輸出所有將sum拆分為n個遞增的正整數 允許相等 之和,其中每個正整數k都滿足 min k max。在少俠的部落格 看到這道題 就隨手做了下。該題與輸出n個數取m個數的所有組合類似,只不過限定了m個數的和以及取值範圍。可以先用貪心演算法構造乙個最小的...