51nod 1201 整數劃分

2022-03-24 00:45:39 字數 574 閱讀 5417

dp轉移方程:dp[i][j] = dp[i-j][j]+dp[i-j][j-1];

dp[i][j] 表示將i分成j個不相等的數的個數。

dp[i-j][j]-->dp[i][j]表示給原先的j個數各加一;

dp[i-j][j-1]-->dp[i][j]表示給原先的j-1的數加1,再附帶個1.

因為不相等的數,所以n(n+1)/2<=5e4+5,n = 400左右就行。

#include #include 

#include

#include

using

namespace

std;

const

int maxn = 5e4+5

;const

int mod = 1e9+7

;int dp[maxn][400

];int

main()

}long

long ans = 0

;

for(int i=1;i<400;i++)

cout

return0;

}

51nod 1201 整數劃分

將n分為若干個不同整數的和,有多少種不同的劃分方式,例如 n 6,共4種。由於資料較大,輸出mod 10 9 7的結果即可。1 n 50000 直接一看就想到是一道最簡單揹包問題 但n 50000 然後我就直接上揹包,結果毫無疑問的超時,然後我的乙個夥伴在打二維揹包暴力時手抖打錯打出了正解 我們設f...

51nod 1201 整數劃分

1201 整數劃分 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 將n分為若干個不同整數的和,有多少種不同的劃分方式,例如 n 6,共4種。由於資料較大,輸出mod 10 9 7的結果即可。input 輸入1個數n 1 n 50000 output 輸出劃分的數...

51NOD 1201 整數劃分

題意 將n劃分成不同正整數的和的方案數。演算法 動態規劃 題解 暴力 f i j 只用前1.i的數字,總和為j的方案數 本質上是01揹包,前i個物體,總質量為j的方案數 f i j f i 1 j f i 1 j i 複雜度o n 2 優化 我們發現,因為要求數字不同,那麼數字最多也小於sqrt n...