SSL 1597 石子合併問題

2021-08-13 15:48:10 字數 748 閱讀 2963

description

在乙個圓形操場的四周擺放著n 堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2 堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。試設計乙個演算法,計算出將n堆石子合併成一堆的最小得分和最大得分。

程式設計任務:

對於給定n堆石子,程式設計計算合併成一堆的最小得分和最大得分。

input

輸入包括多組測試資料,每組測試資料報括兩行。

第1 行是正整數n,1<=n<=100,表示有n堆石子。

第2行有n個數,分別表示每堆石子的個數。

公升級版的石子合併,沒多大變化,石子合併見圓圈版的可以每次更新一下順序再求。

#include#includeint n,s1[101],s[101],f[101][101],f1[101][101],x,max1=0,min1=2000000000;

int min(int x,int y)

int main()

for (int l=1;l<=n;l++)

max1=max(f[1][n],max1);

min1=min(f1[1][n],min1);

for (int i=1;i<=n;i++)//這裡就是更新順序,每次轉一下,比如1,2,3,下一次轉成2,3,1再合一次

}printf("%d\n%d",min1,max1);

}

SSL 1597石子合併問題(動規練習題)

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

SSL P1597 石子合併問題

求在乙個圓圈中,合併所有石堆為一堆,其最大or最小的值。因為是在乙個圓圈內,所以一頭與一尾也可以合併,且合併一次,都要再模擬一次圓圈,十分麻煩,所以我用乙個2 n的陣列,將每個石堆的得分複製到其 n的位置上,然後我們就可以 為所欲為 像普通石子合併一樣,求出每段 i i n 的最大和最小值,最後再將...

SSL P1597 石子合併問題 題目

石子合併問題 time limit 1000ms memory limit 65536k total submit 172 accepted 75 description 在乙個圓形操場的四周擺放著n 堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2 堆石子合併成新的一堆,並將新的一堆石...