題解 洛谷P1880 NOI1995 石子合併

2021-10-09 10:09:09 字數 474 閱讀 5765

洛谷p1880石子合併

這是一道經典的區間dp題,f[l][r]表示將區間[l,r]之間的石子合併後的最值。可以由長度小的區間推得長度大的區間的資訊。題中資料是環狀的,需要斷環為鏈,將原序列複製並加到後面。

#include using namespace std;

const int inf=0x7fffffff;

const int maxn=200+5;

int n;

int f1[maxn][maxn],f2[maxn][maxn],a[maxn],sum[maxn];

//sum是字首和,f1,f2分別表示最小/大值

inline void dp()

printf("%d\n%d\n",ans_min,ans_max);

return 0;

}

洛谷P1880 NOI1995 石子合併 題解

在乙個圓形操場的四周擺放n堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。試設計出1個演算法,計算出將n堆石子合併成1堆的最小得分和最大得分.輸入格式 資料的第1行試正整數n,1 n 100,表示有n堆石子.第2行有n個數,分別...

洛谷 P1880 NOI1995 石子合併

這道題是之前石子合併的加強板 不同在於是乙個環 處理方法就是把陣列 乘以2,列舉起點轉化成鏈。以後這種環的問題應該都可以這樣來轉化。陣列空間不要忘了乘以2 然後要注意區間從長度為2開始,初始化為最大或最小 注意這裡的得分是合併之後的得分,所以單獨一堆是沒有得分的。include include in...

洛谷 P1880 NOI1995 石子合併

在乙個圓形操場的四周擺放n堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。試設計出1個演算法,計算出將n堆石子合併成1堆的最小得分和最大得分.輸入格式 資料的第1行試正整數n,1 n 100,表示有n堆石子.第2行有n個數,分別...