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#includelong
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是集...