【题解】洛谷P1823 [COI2007]Patrik音乐会的等待
前往:我自己搭建的博客
题目
洛谷P1823[COI2007]Patrik音乐会的等待
题解
使用单调栈维护一个不严格递减的数列,将新的元素与栈顶元素依次比较,如果符合要求(能互相看到)就计数,同时维护栈内数据的性质。计数时细节较多:题中要求多少对人,所以在对新元素进行处理时,只需要统计他左边能互相看到的人;多个连续的高度相同的人能互相看到;相邻的人能互相看到;相邻且高度相同的人只要统计一次。
代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
ll ans;
stack<pair<int,int> > s; //高度/此高度的人的数量
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){int t; scanf("%d",&t);while(s.size()&&s.top().first<t) ans+=s.top().second,s.pop();if(s.size()&&s.top().first==t) ans+=s.top().second++;else s.push(make_pair(t,1));if(s.size()>=2) ans++; //统计左侧第一个比他高的人 }printf("%lld\n",ans);return 0;
}
【题解】洛谷P1823 [COI2007]Patrik音乐会的等待相关推荐
- 洛谷 P1823 [COI2007] Patrik 音乐会的等待
目录: 题目: 分析: 80分: 100分(AC): 代码: 80分: 100分(AC) 题目: 传送门 分析: 80分: 按照普通的单调栈的做法,每加入一个人,就开始操作:当当前栈顶小于这个人的身高 ...
- 洛谷P1823 [COI2007] Patrik 音乐会的等待
1 #include<cstdio> 2 #include<algorithm> 3 #include<stack> 4 #include<cctype> ...
- Luogu P1823 [COI2007] Patrik 音乐会的等待
Luogu P1823 [COI2007] Patrik 音乐会的等待 做一套初赛模拟题,填程序是这个 就顺便找原题做一下 :单调栈 #include<cstdio> #include&l ...
- P1823 [COI2007] Patrik 音乐会的等待
P1823 [COI2007] Patrik 音乐会的等待 模型总结 单调栈 关键点 开longlong 注意对相同元素的处理,注意最劣复杂度要正确 使用二分进行统计和出栈 // from [hzwe ...
- P1823 [COI2007] Patrik 音乐会的等待(单调栈)
维护一个单调栈,使得栈顶元素最小,比如:a[1]=6,a[2]=5,a[3]=2,a[4]=6 此时 a[1],a[2],a[3] 逐步进栈,有两对可以交谈 a[4] 进栈时,可以与 a[1] 交谈, ...
- P1823 [COI2007] Patrik 音乐会的等待 单调栈
单调栈 链接 栈底维护的是目前身高最高的人,因为在此人前的人因为此人的存在不能与后来的人联系了,所以如果遇到身高高的人就不断让比他身高矮的人出栈即可.不过我们还要留意身高相同的情况. 由于要考虑重复的 ...
- P1823 [COI2007] Patrik 音樂會的等待
題目連結:[COI2007] Patrik 音乐会的等待 - 洛谷 一開始看到題目有種逆序對的感覺,但題目說明中間若有比自己高的點就不算一對,這就不關逆序對的事情了. 1. 中間不能有比自己高的人 2 ...
- 题解 洛谷P1365 WJMZBMR打osu! / Easy
题解 洛谷P1365 WJMZBMR打osu! / Easy Date 2019.7.28 题目大意 给出一个长度为n的由o,x,?组成的字符串,对于每连续的a个o,就有a2分.同时,对于任意的?,有 ...
- python刷题 NOI题库 python题解 洛谷、牛客网、AcWing 刷题等
NOI题库 python题解-2022.01.07整理(1.1-1.3) NOI题库 python题解-2022.01.07整理(1.1-1.3)_dllglvzhenfeng的博客-CSDN博客 N ...
最新文章
- 为什么阿里P8、P9技术大牛反复强调“结构化思维”?
- hbase2.0 vs hbase1.x 延时比较
- ubuntu10.10各种服务器搭建
- linux 给普通用户赋予最高权限
- Java基础----JAVA语言的概述和开发环境的搭配
- 如何在C中生成随机int?
- HDU1236 排名【排序】
- 【Gym-101775 L】SOS【思维博弈】
- 人脸识别库-于仕琪老师库地址
- Jetpack—LiveData组件的缺陷以及应对策略 转至元数据结尾
- amd64版本linux,在Kali Linux系统下安装Zoom客户端amd64.deb版本的方法
- 如何应对硬盘无法识别通电异响等那些七七八八的物理故障
- 条码支付互联互通介绍
- 处理 yarn 项目 has unmet peer dependency
- 手机静音状态下也让播出声音
- 了解vm.swappiness
- 如何写好科研论文(学习笔记2000字)
- 人工智能论文术语集13
- Input和label
- BGP路由器协议排错教程:AS总结
热门文章
- MMDet3D——报错解决:KeyError: ‘SparseConv2d is already registered in conv layer‘
- 【找工作资料】中智谈英文简历写作技巧
- 如何在linux虚拟机中安装eclipse
- 有人知道报软件测试培训班需要多少钱吗?
- 站长在线python精讲:在Python中使用len()函数计算字符串的长度详解
- YOLOv4算法详解
- 蚂蚁集团为发展新品牌蚂蚁链仲裁个人antchain域名
- Gabriella Fox
- 25 个前端相关的学习网站和一些靠谱的小工具
- LADP 启用SSL开启636端口,实现第三方集成