C. Sequence Pair Weight
我们发现不管是分组内计算 或者是暴力都是不可取的
我们思考反想
一对相同数能够有算进多少种方式 显然是i*(n-i+1)的组合数
显然要是有第三个相同的数也是可以和前两个的组合的
所以我们记录一个mp[a[i]]表示前面a[i]存的下标即可
void solve() {
int n,ans=0;cin>>n;
map<int,int>mp;
vector<int>a(n+1);
for(int i=1;i<=n;i++){
cin>>a[i];
ans+=mp[a[i]]*(n-i+1);
mp[a[i]]+=i;
}
cout<<ans<<endl;
}
标签:int,721,Codeforces,mp,ans,Round
From: https://www.cnblogs.com/ycllz/p/16788014.html