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;

}

相关推荐
MicroTech20252 分钟前
微算法科技(NASDAQ:MLGO)后量子区块链安全架构:基于模块化格密码的抗量子签名机制
科技·算法·区块链
Zzj_tju4 分钟前
Java 从入门到精通(九):集合框架入门,List、Set、Map 到底该怎么选?
java·开发语言·list
米粒15 分钟前
力扣算法刷题 Day 24
算法·leetcode·职场和发展
郝学胜-神的一滴6 分钟前
从线程栈到表达式求值:栈结构的核心应用与递归实现
开发语言·数据结构·c++·算法·面试·职场和发展·软件工程
月落归舟6 分钟前
排序算法---(二)
数据结构·算法·排序算法
姓蔡小朋友7 分钟前
Agent Skill设计模式
开发语言·javascript·设计模式
敲代码的嘎仔10 分钟前
Java后端开发——多线程面试题
java·开发语言·面试·多线程·八股·threadlocal·
sonnet-102910 分钟前
交换排序算法
java·c语言·开发语言·数据结构·笔记·算法·排序算法
NGC_661111 分钟前
深度解析 ConcurrentHashMap 1.8:put 与 get 核心流程全解
java·开发语言
穿条秋裤到处跑14 分钟前
每日一道leetcode(2026.03.27):循环移位后的矩阵相似检查
算法·leetcode·矩阵