开一个单调递减的单调栈,然后用sum数组维护每个点的答案,新加点的时候一边退栈一边把退掉的点的sum加进来

#include<iostream>
#include<cstdio>
using namespace std;
const int N=800005;
int s[N],top,a[N],n,sum[N];
int read()
{
int r=0,f=1;
char p=getchar();
while(p>'9'||p<'0')
{
if(p=='-')
f=-1;
p=getchar();
}
while(p>='0'&&p<='9')
{
r=r*10+p-48;
p=getchar();
}
return r*f;
}
int main()
{
n=read();
for(int i=1;i<=n;i++)
a[i]=read();
for(int i=n;i>=1;i--)
{
while(top&&a[i]>a[s[top]])
sum[i]+=sum[s[top--]]+1;
s[++top]=i;
}
long long ans=0;
for(int i=1;i<=n;i++)
ans+=sum[i];
printf("%lld\n",ans);
}

最新文章

  1. linux mysql
  2. monodb C#接口封装
  3. fio 2种画图方法 fio_generate_plots 和 gfio
  4. TCP的几个状态
  5. C#:Oracle数据库带参PLSQL语句的正确性验证
  6. react-native Unrecognized font family ‘Lonicons’;
  7. unity 全屏乱影 BlitMultiTap
  8. phpstorm9 无法输入中文逗号句号等符号了,怎么破?
  9. 查看MySQL还原出来的binlog日志中内容方法
  10. Spring Boot 系列教程16-数据国际化
  11. Windows与Linux文件系统互访的几种方法
  12. [HDU1020] Encoding - 加密
  13. js中的confirm的运用
  14. 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包
  15. 高通spi 屏幕 -lk代码分析
  16. Appium+python+html生成饼图测试报告
  17. 记一次 HTTP信息头管理器使用 的重要性
  18. 涂抹mysql笔记-数据备份和恢复
  19. centos7下安装docker(13docker存储)
  20. [SDOI2016]储能表——数位DP

热门文章

  1. String字符串类的获取功能
  2. git-svn 简易 操作指南
  3. NYOJ-769乘数密码,逆元解法;
  4. Archive log restore using RMAN for Logminer (http://www.dba-village.com/village/dvp_forum.OpenThread?ThreadIdA=26816)
  5. Spring &amp; Java
  6. [K/3Cloud] 在设计时复制已有表单菜单或菜单项快速建立菜单
  7. easyUI pagination分页控件点击下一页后跳转到最后一页
  8. P2910 [USACO08OPEN]寻宝之路Clear And Present Danger 洛谷
  9. poj——2367  Genealogical tree
  10. cogs——2084. Asm.Def的基本算法