前往:我自己搭建的博客

题目

洛谷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音乐会的等待相关推荐

  1. 洛谷 P1823 [COI2007] Patrik 音乐会的等待

    目录: 题目: 分析: 80分: 100分(AC): 代码: 80分: 100分(AC) 题目: 传送门 分析: 80分: 按照普通的单调栈的做法,每加入一个人,就开始操作:当当前栈顶小于这个人的身高 ...

  2. 洛谷P1823 [COI2007] Patrik 音乐会的等待

    1 #include<cstdio> 2 #include<algorithm> 3 #include<stack> 4 #include<cctype> ...

  3. Luogu P1823 [COI2007] Patrik 音乐会的等待

    Luogu P1823 [COI2007] Patrik 音乐会的等待 做一套初赛模拟题,填程序是这个 就顺便找原题做一下 :单调栈 #include<cstdio> #include&l ...

  4. P1823 [COI2007] Patrik 音乐会的等待

    P1823 [COI2007] Patrik 音乐会的等待 模型总结 单调栈 关键点 开longlong 注意对相同元素的处理,注意最劣复杂度要正确 使用二分进行统计和出栈 // from [hzwe ...

  5. 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] 交谈, ...

  6. P1823 [COI2007] Patrik 音乐会的等待 单调栈

    单调栈 链接 栈底维护的是目前身高最高的人,因为在此人前的人因为此人的存在不能与后来的人联系了,所以如果遇到身高高的人就不断让比他身高矮的人出栈即可.不过我们还要留意身高相同的情况. 由于要考虑重复的 ...

  7. P1823 [COI2007] Patrik 音樂會的等待

    題目連結:[COI2007] Patrik 音乐会的等待 - 洛谷 一開始看到題目有種逆序對的感覺,但題目說明中間若有比自己高的點就不算一對,這就不關逆序對的事情了. 1. 中間不能有比自己高的人 2 ...

  8. 题解 洛谷P1365 WJMZBMR打osu! / Easy

    题解 洛谷P1365 WJMZBMR打osu! / Easy Date 2019.7.28 题目大意 给出一个长度为n的由o,x,?组成的字符串,对于每连续的a个o,就有a2分.同时,对于任意的?,有 ...

  9. 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 ...

最新文章

  1. 为什么阿里P8、P9技术大牛反复强调“结构化思维”?
  2. hbase2.0 vs hbase1.x 延时比较
  3. ubuntu10.10各种服务器搭建
  4. linux 给普通用户赋予最高权限
  5. Java基础----JAVA语言的概述和开发环境的搭配
  6. 如何在C中生成随机int?
  7. HDU1236 排名【排序】
  8. 【Gym-101775 L】SOS【思维博弈】
  9. 人脸识别库-于仕琪老师库地址
  10. Jetpack—LiveData组件的缺陷以及应对策略 转至元数据结尾
  11. amd64版本linux,在Kali Linux系统下安装Zoom客户端amd64.deb版本的方法
  12. 如何应对硬盘无法识别通电异响等那些七七八八的物理故障
  13. 条码支付互联互通介绍
  14. 处理 yarn 项目 has unmet peer dependency
  15. 手机静音状态下也让播出声音
  16. 了解vm.swappiness
  17. 如何写好科研论文(学习笔记2000字)
  18. 人工智能论文术语集13
  19. Input和label
  20. BGP路由器协议排错教程:AS总结

热门文章

  1. MMDet3D——报错解决:KeyError: ‘SparseConv2d is already registered in conv layer‘
  2. 【找工作资料】中智谈英文简历写作技巧
  3. 如何在linux虚拟机中安装eclipse
  4. 有人知道报软件测试培训班需要多少钱吗?
  5. 站长在线python精讲:在Python中使用len()函数计算字符串的长度详解
  6. YOLOv4算法详解
  7. 蚂蚁集团为发展新品牌蚂蚁链仲裁个人antchain域名
  8. Gabriella Fox
  9. 25 个前端相关的学习网站和一些靠谱的小工具
  10. LADP 启用SSL开启636端口,实现第三方集成