對於從1到n的連續整集合合,能劃分成兩個子集合,且保證每個集合的數字和是相等的.
舉個例子,如果 n=3,對於能劃分成兩個子集合,他們每個的所有數字和是相等的:
and
26這是唯一一種分發(交換集合位置被認為是同一種劃分方案,因此不會增加劃分方案總數)
如果 n=7,有四種方法能劃分集合,每一種分發的子集合各數字和是相等的:
and
and
and
and
給出 n,你的程式應該輸出劃分方案總數,如果不存在這樣的劃分方案,則輸出 0.程式不能預存結果
直接輸出.
program name: subset
input format
輸入檔案只有一行,且只有乙個整數 n
sample input (file subset.in)
7 output format
輸出劃分方案總數,如果不存在則輸出 0.
sample output (file subset.out)
class test
public void run(int n)
}system.out.println(f[sum]/2);
} public static void main(string args)
}
揹包問題求方案數(01揹包變形)
acwing include using namespace std const int maxx 1010 const int mod 1e9 7 取模 const int inf 0x3f3f3f3f int f maxx g maxx 分別表示f j 體積恰好為j的時候價值是多少,g j 是恰...
揹包九講 之 01揹包求方案數
本文基於01揹包問題 問題重述 有 n 件物品和乙個容量是 v 的揹包。每件物品只能使用一次。第 i 件物品的體積是 vi,價值是 wi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出 最優選法的方案數。注意答案可能很大,請輸出答案模 109 7 的結果。輸入格式 第...
USACO Subset 整數劃分01揹包
又是去理解了一次01揹包。這道題目的意思就是給你乙個n n 40 表示有乙個集合 你要將它劃分成相等的兩個子集合,求有幾種劃分方式 如果n是奇數,那麼顯然不能由相同的兩個sub sum組成,所以要輸出 0 現在我們定義乙個陣列dp i j 表示前i個數組合起來的和是j的種數 接下來就和01揹包很像了...