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;

}

相关推荐
yugi9878382 分钟前
基于Matlab的晴空指数计算实现
开发语言·算法·matlab
song150265372985 分钟前
空间站太阳能帆板电池 组件性能测试 AM0太阳光模拟器
开发语言·python
不会c嘎嘎7 分钟前
QT中的常用控件 (三)
开发语言·qt
代码方舟7 分钟前
Java企业级风控实战:对接天远多头借贷行业风险版API构建信贷评分引擎
java·开发语言
闫有尽意无琼12 分钟前
Qt局部变量“遮蔽(shadow)”成员变量导致lambda传参报错
开发语言·qt
星火开发设计12 分钟前
Python数列表完全指南:从基础到实战
开发语言·python·学习·list·编程·知识·期末考试
另寻沧海14 分钟前
VS Code 内置变量与配置文件完全指南
c++·vscode
工程师00714 分钟前
C# 动态编程(基于 dynamic 类型)
开发语言·c#·dynamic·动态编程
ADI_OP19 分钟前
ADAU1452的开发教程3:常规音频算法的开发(2)
算法·dsp开发·adi dsp中文资料·adi dsp·adi音频dsp·adi dsp开发教程
南桥几晴秋20 分钟前
Qt显示类控件
开发语言·c++·qt