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;

}

相关推荐
努力学习的小洋14 小时前
Python训练打卡Day4:缺失值处理
开发语言·python
郝学胜-神的一滴14 小时前
Python类属性与实例属性详解及MRO算法演进
开发语言·python·程序人生·算法
一颗青果14 小时前
短线重连代码实现
开发语言·网络·c++
AI视觉网奇14 小时前
audio2face 实时驱动 2026笔记
开发语言·python
陳103014 小时前
C++:list(1)
开发语言·c++
小CC吃豆子14 小时前
如何在 VS Code 中调试 C++ 程序?
开发语言·c++
sonadorje14 小时前
支持向量机 (SVM) 通俗解读
算法·机器学习·支持向量机
Overt0p14 小时前
抽奖系统(7)
java·开发语言·spring boot·redis·tomcat·rabbitmq
JANG102414 小时前
【Qt】项目打包
开发语言·qt
Dylan的码园14 小时前
深入浅出Java排序:从基础算法到实战优化(上)
java·数据结构·算法