DP地獄訓練 石子歸併

2022-03-25 21:52:52 字數 792 閱讀 8656

時間限制: 1 sec  記憶體限制: 64 mb

提交: 694  解決: 295

[提交][狀態][討論版]

有一堆石頭質量分別為w1,w2,…,wn.(wi≤10000),將石頭合併為兩堆,使兩堆質量的差最小。

輸入第一行只有乙個整數n(1≤n≤50),表示有n堆石子。接下去的n行,為每堆石子質量。

輸出只有一行,該行只有乙個整數,表示最小的質量差.

5 58

1327

14

3

判定性dp,見**。

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7

8using

namespace

std;910

/*11

f[i][j] = 前i個石子使得|a| - |b| = j是否能夠實現

12f[i][j] = or

13*/

14#define n (50 * 10000 + 100)

15int

n, w, p;

16bool f[2][n * 2

];17

1819

20int

main()29}

30for(int i = 0 ; i <= n ; i ++)35}

36 }

view code

DP地獄訓練 石子合併

時間限制 1 sec 記憶體限制 64 mb 提交 1004 解決 204 提交 狀態 討論版 有n堆石子圍成乙個圓圈。現在需要把它們合併成一堆石子。每次合併時,只能合併相鄰的兩堆石子,所耗力氣為兩堆石子重量之和,合併得到的新堆的重量為原兩堆重量之和。問最少需要耗費多少力氣?資料規模 1 n 200...

DP 石子歸併

wikioi 1048 石子歸併 有n堆石子排成一列,每堆石子有乙個重量w i 每次合併可以合併相鄰的兩堆石子,一次合併的代價為兩堆石子的重量和w i w i 1 問安排怎樣的合併順序,能夠使得總合併代價達到最小。輸入描述 input description 第一行乙個整數n n 100 第二行n個...

dp 石子歸併

玄學npc 有一堆石頭質量分別為w1,w2,wn.wi 10000 將石頭合併為兩堆,使兩堆質量的差最小。輸入第一行只有乙個整數n 1 n 50 表示有n堆石子。接下去的n行,為每堆石子質量。輸出只有一行,該行只有乙個整數,表示最小的質量差.5 58 1327 14 本來想到了乙個很有道理的貪心 定...