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;

}

相关推荐
晚风叙码14 小时前
从0吃透C++入门|第一个程序、命名空间与缺省函数基础
开发语言·c++
搬砖魁首14 小时前
基础能力系列 - 多线程1 - 内存序
算法·内存序·memory order
j_xxx404_14 小时前
Linux线程:核心机制与优雅的 C++ 封装实践|附源码
linux·运维·服务器·开发语言·c++·人工智能·ai
qingyulee14 小时前
机器学习概述、KNN算法
开发语言·python·机器学习
mohaoyuan14 小时前
软考架构师知识点汇总
开发语言·架构
W230357657314 小时前
手写 muduo 库:基于 Reactor 模型打造高性能网络通信框架
c++·reactor·tcp·muduo库
pursuit_csdn14 小时前
力扣周赛 503
java·算法·leetcode
Zhang~Ling15 小时前
C++ 模板进阶:非类型参数、特化与分离编译深度解析
开发语言·c++
sheeta199815 小时前
LeetCode 每日一题笔记 日期:2026.05.21 题目:3043. 最长公共前缀的长度
笔记·算法·leetcode
Oj92q85H515 小时前
如何在Dev-C++中使用TDM-GCC编译项目
linux·开发语言·c++