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;

}

相关推荐
普通网友几秒前
PictureSelector 相册全白不显示问题
java·开发语言
普通网友2 分钟前
用 Next.js 15 做图片查看网站:图片双击放大的交互坑与修复
开发语言·javascript·交互
独自破碎E6 分钟前
kafka中的时间轮实现
java·开发语言
程序员阿鹏10 分钟前
如何保证写入Redis的数据不重复
java·开发语言·数据结构·数据库·redis·缓存
JAY_LIN——816 分钟前
字符串函数(strncpy/cat/cmp、strstr、strtok、strerror)
c语言·开发语言
明朝百晓生24 分钟前
强化学习[chapter8] [page17] Value Function Methods
人工智能·算法
lly20240628 分钟前
C# 数据类型
开发语言
POLITE336 分钟前
Leetcode 56.合并区间 JavaScript (Day 6)
算法·leetcode·职场和发展
树欲静而风不止慢一点吧44 分钟前
Qt5/6版本对应的Emscripten版本
开发语言·qt
微爱帮监所写信寄信1 小时前
微爱帮监狱寄信写信系统后台PHP框架优化实战手册
android·开发语言·人工智能·网络协议·微信·https·php