ABC318-E

挺有意思的一题,就当积累一下吧。

做法

枚举i和k会超时,那就只枚举j。

#include<bits/stdc++.h>

using namespace std;

int n;

int a300010;

vector<int> v300010;

int main(){

scanf("%d",&n);

map<int,int> mp;//数的种类

for(int i=1;i<=n;i++){

scanf("%d",&ai);

va\[i].push_back(i);//存下标

mpa\[i]++;

}

long long ans=0;

for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){

for(int i=1;i<vit-\>first.size();i++){

ans+=1ll*(vit-\>firsti-vit-\>firsti-1-1)*i*(vit-\>first.size()-i);

//(vit-\>firsti-vit-\>firsti-1-1)是不同的j,i是在aj前面ai的个数,(vit-\>first.size()-i)是在aj前面ai的个数

}

}

cout<<ans<<endl;

}

相关推荐
码匠许师傅2 小时前
【C++ 面试真题】C++ 的 const 和 constexpr 有什么区别?
c++·面试
坚持编程的菜鸟4 小时前
模拟实现memmove
c语言·算法·模拟实现memmove
BUG研究员_4 小时前
Runnable与LCEL
开发语言·人工智能·python
wabs6665 小时前
关于图论【最短路径之Dijkstra算法(堆优化版)|卡码网47.参加科学大会的思考】
数据结构·算法·图论·优先级队列·邻接表·小顶堆·卡码网
果果燕5 小时前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
坚持编程的菜鸟5 小时前
编写判断大小端程序
c语言·算法·判断大小端
papaofdoudou5 小时前
判断排列逆序奇偶性的乘积判别法(范德蒙德符号法)
人工智能·算法
牛艺翔5 小时前
C++基础
开发语言·c++
键盘会跳舞6 小时前
C++ :容器适配器stack源码级拆解
开发语言·c++··stack·先进后出
linux-hzh6 小时前
百日算法修炼 · Day 03
java·算法