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)相关的知识,希望对你有一定的参考价值。

LINK

考虑 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(ni+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 (ni+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#721c

codeforces Round 721 (Div 2)

Codeforces Round #721 (Div. 2)

C. Sequence Pair Weight——Codeforces Round #721 (Div. 2)

Codeforces Round #721 (Div. 2) C. Sequence Pair Weight(计算贡献/STL)