Atcoder Beginner Contest 140E(多重集,思维)
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
multiset<long long>mst;
long long a[100007];
int main(){
long long n;
cin>>n;
long long x;
for(long long i=0;i<n;++i){
cin>>x;
a[x]=i;
}
mst.insert(-1);
mst.insert(-1);
mst.insert(n);
mst.insert(n);
long long ans=0;
set<long long>::iterator pos,nex,pre,pree;
for(long long i=n;i;--i){//倒着插,使得集合内除了初始插入的两个-1和两个n其余的位置它们的值都比后插入的值大
pos=mst.upper_bound(a[i]);//比当前i的值大的下一个值的位置
nex=next(pos);//比pos大的下一个值的位置
pre=prev(pos);//比当前i的值小的上一个值的位置
pree=prev(pre);//比pre小的上一个值的位置
ans+=i*((*nex-*pos)*(a[i]-*pre)+(*pos-a[i])*(*pre-*pree));//区间内只有一个值比当前i值大
mst.insert(a[i]);//将当前值的位置插入
}
cout<<ans;
return 0;
}
最新文章
- python 3.x urllib学习
- HTML基础(1)
- hdu 2586(LCA在线ST)
- 性能测试-Jmeter
- [AngularJS] TweenList 3D + AngularJS Animate
- es5 和 es6 class
- IAR ERROR --- [Li006]
- C#接口的使用
- HDU2571:命运(DP)
- 集美大学网络1413第九次作业成绩(团队五) -- 测试与发布(Alpha版本)
- (二十六)svn的问题二
- Docker学习——Lepus部署
- .NET Core微服务之基于Consul实现服务治理(续)
- AJAX的简单示例:注册校验
- 5月17 AJAX返回类型-------JSON和XML
- jpa orderby
- YOLO v2 损失函数源码分析
- centos php Zookeeper kafka扩展安装
- FIS3常用配置
- jsp中9个隐含对象
热门文章
- 南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup
- Integer数值小于127时使用==比较的坑
- [Python] Tkinter的食用方法_01_简单界面
- 【PAT甲级】1097 Deduplication on a Linked List (25 分)
- 记一次深坑,dubbo暴露的服务无法注册到zookeeper的原因
- NPC脚本界面自定义美化参数说明
- Python实现mysql数据库增删改查
- 计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。
- 操作系统OS - 进程的状态切换
- Spark Streaming实践和优化