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;

}

相关推荐
初次见面我叫泰隆13 小时前
Qt——2、信号和槽
开发语言·c++·qt
D_evil__13 小时前
【Effective Modern C++】第二章 auto:5. 优先使用 auto,而非显式类型声明
c++
玖釉-13 小时前
[Vulkan 学习之路] 26 - 图像视图与采样器 (Image View and Sampler)
c++·windows·图形渲染
一颗青果13 小时前
C++的锁 | RAII管理锁 | 死锁避免
java·开发语言·c++
AI视觉网奇13 小时前
ue c++ 编译常量
c++·学习·ue5
橘颂TA13 小时前
【剑斩OFFER】算法的暴力美学——力扣 130 题:被围绕的区域
算法·leetcode·职场和发展·结构与算法
一分之二~13 小时前
回溯算法--解数独
开发语言·数据结构·c++·算法·leetcode
Smilecoc13 小时前
ChromeDriverManager:自动下载和管理chromedriver版本
开发语言·python
天燹13 小时前
Qt 6 嵌入 Android 原生应用完整教程
android·开发语言·qt