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;

}

相关推荐
落落落sss几秒前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
可均可可16 分钟前
C++之OpenCV入门到提高005:005 图像操作
c++·图像处理·opencv·图像操作
2401_8532757321 分钟前
ArrayList 源码分析
java·开发语言
zyx没烦恼21 分钟前
【STL】set,multiset,map,multimap的介绍以及使用
开发语言·c++
lb363636363621 分钟前
整数储存形式(c基础)
c语言·开发语言
feifeikon23 分钟前
Python Day5 进阶语法(列表表达式/三元/断言/with-as/异常捕获/字符串方法/lambda函数
开发语言·python
大鲤余30 分钟前
Rust,删除cargo安装的可执行文件
开发语言·后端·rust
机器视觉知识推荐、就业指导32 分钟前
基于Qt/C++与OpenCV库 实现基于海康相机的图像采集和显示系统(工程源码可联系博主索要)
c++·qt·opencv
浪里个浪的102433 分钟前
【C语言】从3x5矩阵计算前三行平均值并扩展到4x5矩阵
c语言·开发语言·矩阵
MoFe139 分钟前
【.net core】【sqlsugar】字符串拼接+内容去重
java·开发语言·.netcore