博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1660:乱发节
阅读量:4347 次
发布时间:2019-06-07

本文共 818 字,大约阅读时间需要 2 分钟。

一开始就陷入误区了,因为总是想着这头牛能看到几头牛这个点去考虑,然而那样的话基本都会爆的但是又想不出怎么优化,网上的题解。从另一方面考虑就好了,就是这一头牛能被多少头牛看到再加上栈的应用就ok了。

-------------------------------------------------------------------------------

#include<cstdio>

#include<cstring>
#include<iostream>
#include<algorithm>
#include<deque>
#include<stack>
using namespace std;
#define ll long long
const int nmax=80005;
ll n,a[nmax];
stack<ll>q;
int main(){
 scanf("%lld",&n);
 for(ll i=1;i<=n;i++)
   scanf("%lld",&a[i]);
 q.push(a[1]);
 ll ans=0,cur=1;
 for(ll i=2;i<=n;i++){
  if(a[i]>=q.top()){
   while(!q.empty()&&a[i]>=q.top()){
    q.pop();
    cur--;
   }
   q.push(a[i]);
   ans+=cur;
   cur++;
  }
  else{
   ans+=cur;
   q.push(a[i]);
   cur++;
  }
 }
 printf("%lld\n",ans);
 return 0;
}

-----------------------------------------------------------------------------------

转载于:https://www.cnblogs.com/20003238wzc--/p/4824082.html

你可能感兴趣的文章
《博客园美化》为您的博客增加一个萌萌的看板娘吧
查看>>
《VUE》vue 路由传参的三种基本模式
查看>>
《VUE》搜索关键字高亮显示
查看>>
《VUE》VSCode编写vue项目文件出现红色波浪线
查看>>
ruby使用(第一次见到神仙脚手架)
查看>>
Python sqlalchemy 高级用法
查看>>
Python中的xrld模块
查看>>
ubuntu中安装Python3.7
查看>>
python中的并发执行
查看>>
企业级LNMP环境搭建
查看>>
nginx基础详解
查看>>
Linux基础命令:ifconfig
查看>>
Linux基础命令:fdisk
查看>>
Linux基础知识:文件权限管理以及umask
查看>>
Linux基础命令:useradd和groupadd
查看>>
linux基础命令:cp
查看>>
linux基础命令:cat和echo
查看>>
linux基础命令:ls
查看>>
linux基础命令:cd
查看>>
linux基础命令: mkdir和touch
查看>>