题解 | #QQ10 石子合并#(模拟)
石子合并
https://www.nowcoder.com/practice/3eef8d66b0fa4f71a8498974547fe670
解题思路
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; }