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;

}

相关推荐
flysh051 分钟前
C#和.NET简介
开发语言·c#·.net
864记忆1 分钟前
Qt Creator 常用命令的中英文对照表
开发语言·qt
2501_946244787 分钟前
Flutter & OpenHarmony OA系统下拉刷新组件开发指南
开发语言·javascript·flutter
froginwe1110 分钟前
PHP 表单 - 验证邮件和URL
开发语言
@卞11 分钟前
01_树的 dfs 序
算法·深度优先
予枫的编程笔记13 分钟前
从入门到精通:RabbitMQ全面解析与实战指南
java·开发语言·后端·rabbitmq·ruby
isyoungboy15 分钟前
洪水法实现Region RLE的fill_up算法
算法
2401_8414956417 分钟前
自然语言处理实战——基于BP神经网络的命名实体识别
人工智能·python·神经网络·算法·机器学习·自然语言处理·命名实体识别
superman超哥20 分钟前
Rust 异步性能最佳实践:高并发场景的极致优化
开发语言·后端·rust·最佳实践·异步性能·高并发场景
汉克老师21 分钟前
GESP2025年12月认证C++二级真题与解析(编程题2 (黄金格))
c++·二维数组·gesp二级·gesp2级·分支判断