在乙個操場上一排地擺放著n堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。請設計乙個程式,計算出將n堆石子合併成一堆的最小得分。
每組資料第1行為乙個正整數n(2<=n<=100),以下n行,每行乙個正整數,小於10000,分別表示第i堆石子的個數(1<=i<=n)。
對於每組資料輸出乙個正整數,即最小得分
7137
816214
18
239
這道題有三種方法:(1)先列舉邊界,再列舉長度;(2)先列舉長度,再列舉邊界;(3)列舉邊界,然後列舉長度。注:這裡的長度指的是加幾個。
狀態轉移方程:
方法(一)
#include
#include
#include
#include
#include
#include
using
namespace std;
int a[
101]
[101
],c[
101]
,b[10010
],n;
intmain()
cout<
[n];
return0;
}
方法(二)
#include
#include
#include
#include
#include
#include
using
namespace std;
int a[
101]
[101
],c[
101]
,b[10010
],n;
intmain()
cout<
[n];
return0;
}
方法(三)
#include
#include
#include
#include
#include
#include
using
namespace std;
int a[
101]
[101
],c[
101]
,b[10010
],n;
intmain()
cout<
[n];
return0;
}
SSL 2863合併石子
time limit 10000ms memory limit 256000k在乙個操場上一排地擺放著n堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。請設計乙個程式,計算出將n堆石子合併成一堆的最小得分。每組資料第1行為乙個正...
SSL 1597 石子合併問題
description 在乙個圓形操場的四周擺放著n 堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2 堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。試設計乙個演算法,計算出將n堆石子合併成一堆的最小得分和最大得分。程式設計任務 對於給定n堆石子,程式設計計算合併成一堆的最...
SSL 石子歸併
你有一堆石頭質量分別為w1,w2,w3 wn.w 100000 現在需要你將石頭合併為兩堆,使兩堆質量的差為最小。測試資料第一行為整數n 1 n 20 表示有n堆石子。第二行為n個數,為每堆石子的質量。每組測試資料只需輸出合併後兩堆的質量差的最小值。558 1327 143這道題其實可以用搜尋,但我...