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;

}

相关推荐
冲帕Chompa19 分钟前
代码随想录动态规划part02
算法·动态规划
越城21 分钟前
C语言超详细指针知识(三)
c语言·开发语言
yy_xzz26 分钟前
从0到1使用C++操作MSXML
xml·c++·msxml
island131433 分钟前
【QT】QT界面的美容院 -- QSS
开发语言·qt
蹦蹦跳跳真可爱58934 分钟前
Python----机器学习(基于PyTorch的蘑菇逻辑回归)
开发语言·人工智能·pytorch·python·机器学习·逻辑回归
Y1nhl38 分钟前
力扣hot100_技巧_python版本
开发语言·python·算法·力扣
风铃儿~39 分钟前
Java微服务流量控制与保护技术全解析:负载均衡、线程隔离与三大限流算法
java·分布式·算法·微服务·负载均衡
martian6651 小时前
C++算法优化实战:破解性能瓶颈,提升程序效率
开发语言·c++·性能优化
ytz02081 小时前
讲解贪心算法
算法·贪心算法
new一个奶黄包1 小时前
MySql入门
c语言·数据库·c++·mysql·adb