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;

}

相关推荐
王老师青少年编程13 小时前
2024年12月GESP真题及题解(C++七级): 燃烧
c++·题解·真题·gesp·csp·七级·燃烧
汉克老师13 小时前
GESP2025年9月认证C++三级真题与解析(单选题9-15)
c++·算法·数组·string·字符数组·gesp三级·gesp3级
MLGDOU13 小时前
Chatsdk模型接口的设计
网络·c++
发疯幼稚鬼13 小时前
简单介绍各类算法
算法
平生不喜凡桃李13 小时前
LeetCode:LRU and LFU
算法·leetcode·哈希算法
编程大师哥13 小时前
如何在C++中使用Redis的事务功能?
开发语言·c++·redis
星诺算法备案13 小时前
算法备案中“落实算法安全主体责任”的实操构建
人工智能·算法·算法备案
向前V13 小时前
Flutter for OpenHarmony 二维码扫描App实战 - 关于实现
开发语言·javascript·flutter
你撅嘴真丑13 小时前
完数的判断 , 有规律的数列求和
算法
朔北之忘 Clancy13 小时前
第二章 分支结构程序设计(1)
c++·算法·青少年编程·竞赛·教材·考级·讲义