解题思路
1.可证明任意合并顺序所获得分均一样,简单模拟即可;
代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> w(n);
for(int i = 0; i < n; i++){
cin >> w[i];
}
int score = 0, sum = w[0];
for(int i = 1; i < n; i++){ //任意合并顺序得分均一样
score += sum * w[i]; //sum表示前一个石堆的石子个数
sum += w[i];
}
cout << score;
return 0;
}
京公网安备 11010502036488号