博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2866 糟糕的一天
阅读量:5272 次
发布时间:2019-06-14

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

糟糕的一天

挺水的一道题,也就是看每个数后面有多少数比它小,最后把总数加起来。

我们可以用单调栈来实现,并用一个数组来保存每个数现在的状态。

代码:

1 #include
2 long long n,a[80010],stack[80010],top,ans=0; 3 int main(){ 4 scanf("%lld",&n); 5 for(long long i=1;i<=n;i++) 6 scanf("%lld",&a[i]); 7 a[n+1]=1<<30; 8 for(long long i=1;i<=n+1;i++){ 9 while(top&&a[stack[top]]<=a[i]){10 ans+=i-stack[top]-1;11 top--;12 }13 stack[++top]=i;14 }15 printf("%lld",ans);16 return 0;17 }
View Code

 

转载于:https://www.cnblogs.com/jsawz/p/6827041.html

你可能感兴趣的文章
死锁及oracle死锁--转载
查看>>
Android设置监听
查看>>
findByExample(Object exampleEntity)方法得到的List判断是否为空,不可用(lis != null)
查看>>
pip下载保存Python包,pip离线安装
查看>>
mysql建库建表
查看>>
实验五
查看>>
spark生成大宽表的parquet性能优化
查看>>
彩票,随机一注
查看>>
怎么总是这等凶卦
查看>>
浅谈logo在PPT设计中的运用
查看>>
网络那点事之socket队列
查看>>
编程练习:寻找发帖"水王"扩展问题二
查看>>
查询Oracle正在执行和执行过的SQL语句
查看>>
说明性弹性域段
查看>>
15_动态SQL
查看>>
项目协作工具调研
查看>>
理解HEAD请求以及HTTP/204和HTTP/206响应
查看>>
Android 网络通信框架Volley简介(Google IO 2013)
查看>>
Linux 随机数
查看>>
模态框MODAL的一些事件捕捉
查看>>