bzoj 1660: [Usaco2006 Nov]Bad Hair Day 乱发节【单调栈】
2024-08-30 22:21:16
开一个单调递减的单调栈,然后用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);
}
最新文章
- linux mysql
- monodb C#接口封装
- fio 2种画图方法 fio_generate_plots 和 gfio
- TCP的几个状态
- C#:Oracle数据库带参PLSQL语句的正确性验证
- react-native Unrecognized font family ‘Lonicons’;
- unity 全屏乱影 BlitMultiTap
- phpstorm9 无法输入中文逗号句号等符号了,怎么破?
- 查看MySQL还原出来的binlog日志中内容方法
- Spring Boot 系列教程16-数据国际化
- Windows与Linux文件系统互访的几种方法
- [HDU1020] Encoding - 加密
- js中的confirm的运用
- 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包
- 高通spi 屏幕 -lk代码分析
- Appium+python+html生成饼图测试报告
- 记一次 HTTP信息头管理器使用 的重要性
- 涂抹mysql笔记-数据备份和恢复
- centos7下安装docker(13docker存储)
- [SDOI2016]储能表——数位DP
热门文章
- String字符串类的获取功能
- git-svn 简易 操作指南
- NYOJ-769乘数密码,逆元解法;
- Archive log restore using RMAN for Logminer (http://www.dba-village.com/village/dvp_forum.OpenThread?ThreadIdA=26816)
- Spring &; Java
- [K/3Cloud] 在设计时复制已有表单菜单或菜单项快速建立菜单
- easyUI pagination分页控件点击下一页后跳转到最后一页
- P2910 [USACO08OPEN]寻宝之路Clear And Present Danger 洛谷
- poj——2367 Genealogical tree
- cogs——2084. Asm.Def的基本算法