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;

}

相关推荐
加藤不太惠1 分钟前
【无标题】
java·数据结构·算法
学困昇4 分钟前
Linux基础开发工具(下):调试器gdb/cgdb的使用详解
linux·运维·服务器·开发语言·c++
金色旭光4 分钟前
目标追踪算法+卡尔曼滤波原理+ByteTrack使用
算法
ULTRA??7 分钟前
C++数据结构的链表实现模拟
c++·链表
biter down17 分钟前
C++ 组合与继承:从设计本质到实战,吃透高内聚低耦合
开发语言·c++
灰灰勇闯IT17 分钟前
C语言实战:字符串元音字母提取器的实现与优化
c语言·开发语言
fantasy5_528 分钟前
C++11 核心特性实战博客
java·开发语言·c++
夏乌_Wx32 分钟前
练题100天——DAY22:数字拼接+只出现一次的数字
java·数据结构·算法
listhi52033 分钟前
MOEAD算法实现详解(基于Python与MATLAB)
python·算法·matlab
天若有情6731 小时前
从构造函数到Vue3响应式:C++中“常量转特殊类型”的隐藏大招
开发语言·c++