Codeforces Round #721 (Div. 2) C. Sequence Pair Weight(map)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #721 (Div. 2) C. Sequence Pair Weight(map)相关的知识,希望对你有一定的参考价值。
考虑 a j = = a i ( i > j ) a_j==a_i(i>j) aj==ai(i>j)时造成的贡献为
j ∗ ( n − i + 1 ) j*(n-i+1) j∗(n−i+1)
因为当一个子数组左端点小于等于 j j j,右端点大于等于 i i i就可以包含这个对
而且前面有若干个位置等于 a i a_i ai,这些位置是 j 1 , j 2 . . . . . j_1,j_2..... j1,j2.....
也就是和他们造成的贡献和是 ( n − i + 1 ) ∗ ∑ j (n-i+1)*\\sum j (n−i+1)∗∑j
用个 m a p map map记录一下就好了
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 3e5+10;
int n,a[maxn];
unordered_map<int,int>mp;
signed main()
{
int t; cin >> t;
while( t-- )
{
cin >> n;
for(int i=1;i<=n;i++) cin >> a[i];
int ans = 0;
for(int i=1;i<=n;i++)
{
ans += mp[a[i]]*(n-i+1);
mp[a[i]] += i;
}
cout << ans << endl;
mp.clear();
}
}
以上是关于Codeforces Round #721 (Div. 2) C. Sequence Pair Weight(map)的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #721 (Div. 2) Codeforces-1527
Codeforces Round #721 (Div. 2)
C. Sequence Pair Weight——Codeforces Round #721 (Div. 2)
Codeforces Round #721 (Div. 2) C. Sequence Pair Weight(计算贡献/STL)