ABC318-E

挺有意思的一题,就当积累一下吧。

做法

枚举i和k会超时,那就只枚举j。

#include<bits/stdc++.h>

using namespace std;

int n;

int a[300010];

vector<int> v[300010];

int main(){

scanf("%d",&n);

map<int,int> mp;//数的种类

for(int i=1;i<=n;i++){

scanf("%d",&a[i]);

v[a[i]].push_back(i);//存下标

mp[a[i]]++;

}

long long ans=0;

for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){

for(int i=1;i<v[it->first].size();i++){

ans+=1ll*(v[it->first][i]-v[it->first][i-1]-1)*i*(v[it->first].size()-i);

//(v[it->first][i]-v[it->first][i-1]-1)是不同的j,i是在a[j]前面a[i]的个数,(v[it->first].size()-i)是在a[j]前面a[i]的个数

}

}

cout<<ans<<endl;

}

相关推荐
hweiyu0017 分钟前
R语言简介(附电子书资料)
开发语言·r语言
hweiyu0019 分钟前
R语言常用扩展包
开发语言·r语言
明明如月学长1 小时前
什么你不知道 Cherry Studio 有快捷助手?
算法
拳里剑气1 小时前
C语言:顺序表(上)
c语言·开发语言·数据结构·学习方法
Vegetable_Dragon1 小时前
数论1.01
算法
王者鳜錸1 小时前
PYTHON从入门到实践-15数据可视化
开发语言·python·信息可视化
Star在努力1 小时前
15-C语言:第15天笔记
c语言·笔记·算法
杨航 AI1 小时前
ADB+Python控制(有线/无线) Scrcpy+按键映射(推荐)
开发语言·python·adb
研究司马懿1 小时前
【Golang】Go语言函数
开发语言·后端·golang
郝学胜-神的一滴1 小时前
Python defaultdict 的强大之处:告别繁琐的字典键检查: Effective Python 第17条
开发语言·python·程序人生