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;

}

相关推荐
卷福同学2 小时前
【养虾日记】Openclaw操作浏览器自动化发文
人工智能·后端·算法
春日见3 小时前
如何入门端到端自动驾驶?
linux·人工智能·算法·机器学习·自动驾驶
Volunteer Technology3 小时前
架构面试题(一)
开发语言·架构·php
清水白石0083 小时前
Python 对象序列化深度解析:pickle、JSON 与自定义协议的取舍之道
开发语言·python·json
2401_876907523 小时前
Python机器学习实践指南
开发语言·python·机器学习
㓗冽3 小时前
分解质因数-进阶题10
c++
图图的点云库3 小时前
高斯滤波实现算法
c++·算法·最小二乘法
努力中的编程者3 小时前
栈和队列(C语言底层实现环形队列)
c语言·开发语言
一叶落4384 小时前
题目:15. 三数之和
c语言·数据结构·算法·leetcode
码不停蹄Zzz4 小时前
C语言——神奇的static
java·c语言·开发语言