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;

}

相关推荐
yugi9878382 分钟前
TDOA算法MATLAB实现:到达时间差定位
前端·算法·matlab
csbysj20205 分钟前
Redis 配置详解
开发语言
行走在电子领域的工匠8 分钟前
台达ST:自定义串行通讯传送与接收指令COMRS程序范例四
开发语言·台达plc·st语言编程
t1987512813 分钟前
基于因子图与和积算法的MATLAB实现
开发语言·算法·matlab
霸王大陆14 分钟前
《零基础学 PHP:从入门到实战》教程-模块四:数组与函数-1
android·开发语言·php
le serein —f16 分钟前
用go实现-回文链表
算法·leetcode·golang
APIshop16 分钟前
Java爬虫第三方平台获取1688关键词搜索接口实战教程
java·开发语言·爬虫
rit843249919 分钟前
MFOCUSS算法MATLAB实现:稀疏信号重构
算法·matlab·重构
请为小H留灯20 分钟前
Java快捷健(详细版)
java·开发语言
发疯幼稚鬼21 分钟前
散列及其分离链接法
c语言·数据结构·算法·链表·散列表