HRBUST 1541 集合劃分 01揹包

2022-08-21 22:36:16 字數 784 閱讀 9542

description

對於從1到n (1 <= n <= 39) 的連續整數集合,能劃分成兩個子集合,且保證每個集合的數字和是相等的。舉個例子,如果n=3,對於能劃分成兩個子集合,每個子集合的所有數字和是相等的: 和

這是唯一一種分法(交換集合位置被認為是同一種劃分方案,因此不會增加劃分方案總數)

如果n=7,有四種方法能劃分集合,每一種分法的子集合各數字和是相等的:

和 和 和

和 給出n,你的程式應該輸出劃分方案總數,如果不存在這樣的劃分方案,則輸出0。

input

有多組測試資料。

對於每組測試資料,輸入乙個整數n。

output

對於每組測試資料,輸出劃分方案總數,如果不存在則輸出0。

sample input

7sample output

4思路:先鄙視一下自己,簡單的01揹包問題,比賽的時候硬是沒有ac;

dp[i][j]表示前i個數組成和為j的方法數;

**如下;

view code

#include#include

long

long dp[50][500

];

intmain()

dp[0][0]=1

;

for(i=1; i<=n; i++)

}printf(

"%lld\n

", dp[n][sum/2]/2

);

}}

2 7 集合劃分問題

問題描述 n 個元素的集合可以劃分為若干個非空子集。例如,當 n 4 時,集合可以劃分為 15 個不同的非空子集如下 程式設計任務 給定正整數 n,計算出 n 個元素的集合可以劃分為多少個不同的非空子集。資料輸入 由檔案 input.txt 提供輸入資料。檔案的第 1 行是元素個數 n。結果輸出 程...

9409 集合的劃分問題

time limit 3 second memory limit 2 mb 問題描述 n 個元素的集合可以劃分為若干個非空子集。例如,當n 4 時,集合可以劃分為15 個不同的非空子集如下 其中,集合 由1 個子集組成 集合,由2 個子集組成 集合,由3 個子集組成 集合,由4 個子集組成。程式設計...

例4 5 集合的劃分

時間限制 1000 ms 記憶體限制 65536 kb 提交數 218 通過數 158 題目描述 設s是乙個具有n個元素的集合,s 現將s劃分成k個滿足下列條件的子集合s1,s2,sk 且滿足 1 si 2 si sj 1 i,j k i j 3 s1 s2 s3 sk s 則稱s1,s2,sk是集...