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;

}

相关推荐
CDN3601 分钟前
弱网下游戏盾掉线重连失败?链路保活与超时参数优化
开发语言·游戏·php
im_AMBER1 分钟前
Leetcode 153 课程表 | 腐烂的橘子
开发语言·算法·leetcode·深度优先·图搜索
paeamecium3 分钟前
【PAT甲级真题】- Reversing Linked List (25)
数据结构·c++·算法·pat
田梓燊5 分钟前
leetcode 73
算法·leetcode·职场和发展
烈风6 分钟前
01_Tauri环境搭建
开发语言·前端·后端
cch89187 分钟前
PHP爬虫框架大比拼
开发语言·爬虫·php
TTTrees10 分钟前
C++学习笔记(38):封装、继承、多态
c++
ZPC821013 分钟前
相机接入ROS2 流程及问题排查
人工智能·算法·机器人
2501_9403152613 分钟前
【无标题】两个相同字符串中不同字符的个数
算法·哈希算法·散列表
l1t13 分钟前
DeepSeek辅助编写的dmp转schema和csv文件c语言程序
c语言·开发语言·windows