CSU 1592 石子歸併 區間dp

2021-09-10 07:30:30 字數 809 閱讀 2518

現在有n堆石子,第i堆有ai個石子。現在要把這些石子合併成一堆,每次只能合併相鄰兩個,每次合併的代價是兩堆石子的總石子數。求合併所有石子的最小代價。

第一行包含乙個整數t(t<=50),表示資料組數。

每組資料第一行包含乙個整數n(2<=n<=100),表示石子的堆數。

第二行包含n個正整數ai(ai<=100),表示每堆石子的石子數。

每組資料僅一行,表示最小合併代價。

2

41 2 3 4

53 5 2 1 4

19

33

國防科學技術大學第十八屆銀河之光文化節acm程式設計競賽初賽

#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f

#define eps 1e-10

typedef long long ll;

typedef unsigned long long ull;

using namespace std;

int dp[105][105];

int sum[105]; //字首和

int a[105];

int main()

for(int len=2;len<=n;len++) //len-1 為區間長度

}printf("%d\n",dp[1][n]);

} return 0;

}

動態規劃 CSU 1592 石子歸併

題目 現在有n堆石子,第i堆有ai個石子。現在要把這些石子合併成一堆,每次只能合併相鄰兩個,每次合併的代價是兩堆石子的總石子數。求合併所有石子的最小代價。第一行包含乙個整數t t 50 表示資料組數。每組資料第一行包含乙個整數n 2 n 100 表示石子的堆數。第二行包含n個正整數ai ai 100...

CSU 1592 石子歸併 相鄰操作Dp問題

剛開始,想到的是貪心,每次合併相鄰和值最小的兩堆就行了,這題和poj 3186 treats for the cows以及紫書上的 最優矩陣鏈乘 差不多,初看看似貪心,實則是dp問題,但是都不會,呵呵。只能看別人的 然後再寫。思路 用dp i j 表示合併區間 i,j 所需要的最小代價,那麼,狀態轉...

石子歸併 CSU 1592 (區間合併)

題意 將n堆石子合併成一堆,每次只能合併相鄰的兩堆石子,每次合併的代價是兩堆石子總石子數和 思路 入門的一道區間dp,將合併區間由小向大推 dp i j 表示合併區間 i,j 的最小代價 初始化dp為inf,dp i i 0 dp i j min dp i k dp k 1 j sum i j i ...