题目大意
有 \(n\) 个石子,两颗石子的重量之和就是并成的一颗新石子的重量,合并两个石子需要的胶水等于两颗石子重量的乘积。
解题思路
先将 \(sum\) 赋为第一个石子的重量,之后模拟粘石子的过程:
- 累加 \(sum\) 乘上第 \(i\) 颗石子的重量,也就是胶水的数量。
- 再将 \(sum\) 加上第 \(i\) 颗石子的重量,也就是合并后的石子重量。
最后输出胶水的数量即可。
代码
#include<bits/stdc++.h>
#define ri register int
#define ll long long
using namespace std;
ll n,w[100005],sum,ans=0;
int main() {
cin>>n;
for(ri i=1;i<=n;i++)
cin>>w[i];
int sum=w[1];
for(ri i=2;i<=n;i++){
ans+=sum*w[i];
sum+=w[i];
}
cout<<ans;
return 0;
}
标签:A1,P8709,int,sum,石子,ri,蓝桥,胶水,重量
From: https://www.cnblogs.com/zzyblog0619/p/17153720.html