poj3250(单调栈模板题)
题目链接:https://vjudge.net/problem/POJ-3250
题意:求序列中每个点右边第一个>=自身的点的下标。
思路:简单介绍单调栈,主要用来求向左/右第一个小于/大于自身的下标,直接求的话复杂度为O(n2),而单调栈只有O(n),利用好单调栈十分有用。一个元素向左遍历的第一个比它小的数的位置就是将它插入单调栈时栈顶元素的值,若栈为空,则说明不存在这么一个数。然后将此元素的下标存入栈,就能类似迭代般地求解后面的元素。
单调栈的本质是,当一个数a在另一个数b前面且比b大,那么数a就在找第一个比某数小的问题里就完全没有考虑的必要了,他被b完全屏蔽了。
这道题就是单调栈的简单应用,模板题。注意结果用int存不下,需要用long long。
AC代码:
#include<cstdio>
using namespace std; int n,a[],stk[],p;
long long ans; int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)
scanf("%d",&a[i]);
a[n+]=0x3f3f3f3f;
stk[p++]=n+;
for(int i=n;i>=;--i){
while(a[stk[p-]]<a[i]) --p;
ans+=stk[p-]-i-;
stk[p++]=i;
}
printf("%lld\n",ans);
return ;
}
poj3250(单调栈模板题)的更多相关文章
- [Usaco2006 Mar]Mooo 奶牛的歌声(单调栈裸题)
1657: [Usaco2006 Mar]Mooo 奶牛的歌声 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 961 Solved: 679[Submi ...
- [poj3250]单调栈 Bad Hair Day
解题关键:将每头牛看到的牛头数总和转化为每头牛被看到的次数,然后用单调栈求解,其实做这道题的目的只是熟悉下单调栈 此题为递减栈 #include<cstdio> #include<c ...
- 洛谷P2659 美丽的序列 单调栈模板
P2659 美丽的序列 题目链接 https://www.luogu.org/problemnew/show/P2659 题目描述 为了研究这个序列的美丽程度,GD定义了一个序列的"美丽度& ...
- luoguP1886 滑动窗口(单调队列模板题)
题目链接:https://www.luogu.org/problem/P1886#submit 题意:给定n个数,求大小为k的滑动窗口中最小值和最大值. 思路:单调队列模板题. AC代码: #incl ...
- Sliding Window POJ - 2823 单调队列模板题
Sliding Window POJ - 2823 单调队列模板题 题意 给出一个数列 并且给出一个数m 问每个连续的m中的最小\最大值是多少,并输出 思路 使用单调队列来写,拿最小值来举例 要求区间 ...
- poj2559/hdu1506 单调栈经典题
我实在是太菜了啊啊啊啊啊 到现在连个单调栈都不会啊啊啊 写个经典题 #include<cstdio> #include<algorithm> #include<cstri ...
- BZOJ1113 海报PLA1(单调栈入门题)
一,自己思考下 1,先自己思考下 N个矩形,排成一排,现在希望用尽量少的海报去cover住它们. 2,不懂. 着实不懂. 3,分析下,最优性问题对吧,然后就每什么想法了.. 虽然肯定和单调栈和单调队列 ...
- POJ 2796:Feel Good 单调栈经典题
Feel Good Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 11626 Accepted: 3212 Case T ...
- POJ3250(单调栈)
Bad Hair Day Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17614 Accepted: 5937 Des ...
随机推荐
- 报错:/usr/sbin/mysqld: Can't find file: './performance_schema/events_waits_summary_by_account_by_event_name.frm' (errno: 13 - Permission denied)
报错背景: Linux环境下安装MySQL数据库. 安装完成,数据库初始化,启动数据库时报错. 报错现象: -- :: [ERROR] Native table 'performance_schema ...
- [转]Github 下载指定文件夹
来自:https://blog.csdn.net/qq_35860352/article/details/80313078 操作步骤 step1:转换链接地址 点开”/examples”子文件,复制浏 ...
- ActionFilterAttribute 全局记录API日志
1.API项目下创建MonitorApiAttribute public class MonitorApiAttribute : ActionFilterAttribute { private sta ...
- php查询mysql数据库
1.连接数据库,写成一个php,其他文件直接include <?php $connect = mysql_connect("ip地址","用户",&quo ...
- c里面的static inline函数
一般来说加上static表示函数是文件作用域,有的时候单独使用inline编译器会优化,没有编译成内联函数,而是变成普通函数编译,所以必须在前面加上static,放在头文件中可以被外部文件访问. ...
- ubuntu安装python版本的opencv
安装命令: pip install opencv-python
- str中文初始化乱码,要用宽字符;if else
QString str = QString::fromUtf16(L"{\\"closeEt\": true,\\"data\" : [[1,1,10 ...
- 2018-2019-2 20165205 《网络对抗技术》 Exp6 信息收集与漏洞扫描
2018-2019-2 20165205 <网络对抗技术> Exp6 信息收集与漏洞扫描 实验目标 掌握信息收集的最基本技能与常用工具的方式 实验内容 各种搜索技巧的应用 DNS IP注册 ...
- orcal - 多表查询
SQL1999语法标准 CROSS JOIN 产生笛卡尔积 SELECT * from EMP CROSS JOIN dept; NATURAL JOIN 自然连接 相同列 SELECT * from ...
- NamedParameterJdbcTemplate
NamedParameterJdbcTemplate 在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参 ...