题意
给定一个数组,求所有子串和。
思路
每个数字贡献为被包含次数,若数字为a[i]
,则贡献为a[i] * (i + 1) * (n - 1)
。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
vector<double> a(n);
for (int i = 0; i < n; ++i)
cin >> a[i];
double ans = 0;
for (int i = 0; i < n; ++i)
ans += a[i] * (i + 1) * (n - i);
cout << fixed << setprecision(2) << ans << '\n';
return 0;
}
HINT
不定时更新更多题解,Basic Level 全部AC代码,详见 link ! ! !