NOIP 2001數的劃分 解題報告(劃分型DP)

2021-07-17 03:37:58 字數 938 閱讀 9302

整體思路:

f[i][j]表示將i劃分成j份的方法數。 f[i][j]=f[i-j][j]+f[i-1][j-1];1.f[i-j][j]:最小的乙份》=2的方案總數。 所以所有數》=2,有限制, 但此方案數等於把每份都減1的方案數, 等效之後就沒有限制了。 2.f[i-1][j-1]最小的乙份=1的方案總數。 只需最後加上乙份1就行,其餘每份大小無限制。

失誤之處:

開始用fij表示i分成j份的方法數,並用乘法原理dp,但是後來發現這種情況下無法判重,,然後就蒙蔽了。

開始沒有判斷for(intj = 1;j <= k && j <= i;j++)

體會心得:

這道題不就是放蘋果麼,,竟然沒想出來。。應該好好複習

ac**:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#include

#include

#include

#include

usingnamespacestd;

intn,k,dp[300][10];

intmain()

NOIP 2001 數的劃分

問題描述 將整數 n 分成 k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。問有多少種不同的分法。輸入 n,k 輸出 乙個整數,即不同的分法。樣例 輸入 7 3 輸出 4 四種分法為 6 n 200,2 k 6 記 f i,j 為 k i n j...

NOIP2001 數的劃分

codevs 1039 1039 數的劃分 2001年noip全國聯賽提高組 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 題目描述 description 將整數n分成k份,且每份不能為空,任意兩種劃分方案不能相同 不考慮順序 例如 n 7,k 3,下面三種劃分方案被認...

noip2001 數的劃分 2008 11 5

noip2001 數的劃分 2008.11.5 心得 本以為搜尋過不了,只有dp可以ac,實際上,搜尋也可以過完。如果實在想不出來 dp,那就用最好的搜尋來做!法一 搜尋 program sdhf const fin sdhf.in fout sdhf.out var n,k,sum longint...