洛谷P1823 [COI2007] Patrik 音乐会的等待
1 #include<cstdio> 2 #include<algorithm> 3 #include<stack> 4 #include<cctype> 5 #include<utility> 6 using namespace std; 7 typedef long long LL; 8 typedef pair<LL,LL> p;//存储相同身高的人的数目 防止出现多个相同身高的人 9 inline void read(LL &tmp) 10 { 11 int x=1;char c=getchar(); 12 for(tmp=0;!isdigit(c);c=getchar()) if(c=='-') x=-1; 13 for(;isdigit(c);tmp=tmp*10+c-48,c=getchar()); 14 tmp*=x; 15 } 16 stack<p> q; 17 LL n,tmp,ans; 18 int main() 19 { 20 read(n); 21 for(int i=1;i<=n;i++) 22 { 23 read(tmp); 24 p now(tmp,1);//每种身高默认出现次数为1 25 if(!q.empty()&&tmp<q.top().first) ++ans,q.push(now); //若新来的人比栈顶低 则只有其左边一人可看到他 26 else 27 { 28 while(!q.empty()&&tmp>=q.top().first) //若新来的人高于或等于栈顶 29 { 30 if(tmp==q.top().first) now.second+=q.top().second;//统计该身高出现次数 31 ans+=q.top().second;//单调栈内该种身高者都可以看到他 32 q.pop();//弹出栈顶 33 } 34 if(!q.empty()) ans++;//若栈不为空 说明其左边还存在一个比他高的人可以看到他 35 q.push(now); 36 } 37 } 38 printf("%lld",ans); 39 return 0; 40 }
转载于:https://www.cnblogs.com/yu-xing/p/10162848.html
洛谷P1823 [COI2007] Patrik 音乐会的等待相关推荐
- 【题解】洛谷P1823 [COI2007]Patrik音乐会的等待
前往:我自己搭建的博客 题目 洛谷P1823[COI2007]Patrik音乐会的等待 题解 使用单调栈维护一个不严格递减的数列,将新的元素与栈顶元素依次比较,如果符合要求(能互相看到)就计数,同时维 ...
- 洛谷 P1823 [COI2007] Patrik 音乐会的等待
目录: 题目: 分析: 80分: 100分(AC): 代码: 80分: 100分(AC) 题目: 传送门 分析: 80分: 按照普通的单调栈的做法,每加入一个人,就开始操作:当当前栈顶小于这个人的身高 ...
- 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 ...
- 音乐会的等待-单调栈
关于本题,这里只是基础的写法,完美的避开了特殊情况,另一篇博文会详细讲解特殊情况 [COI2007] Patrik 音乐会的等待 题目描述 N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转 ...
- Java 洛谷 提交完题目的代码之后一直停留在 ( 正在等待编译……),刷新页面之后 ,显示 Unaccepted 0分
在洛谷刷题的时候遇到了这样的问题: 提交完题目的代码之后一直停留在 ( 正在等待编译--),刷新页面之后 ,显示 Unaccepted 0分 解决方法: 1.检查你的类名是否是 Main 2.检查你的 ...
最新文章
- 【HDOJ】4333 Revolving Digits
- /dev/null 位桶
- fastreport调用frf文件直接打印_来吧~~ 这里提供自助打印~
- 每天一个linux命令(56):netstat命令
- MySQL查询的方法_MYSQL 查询方法
- redis 命令别名_redis 命令、命令行根据前缀(通配符)批量删除redis存储的key
- Juniper防火墙 L2TP ××× 配置
- 三维点云数据处理软件供技术原理说明_三维点云数据处理软件
- 用Matlab筛选mirbase,一种基于miRBase数据库的植物有参的miRNA数据分析方法与流程...
- J2me实现的wap浏览器
- C语言程序设计专项练习——PTA
- mysql无法加载主类_找不到或无法加载主类之JDK解决方法
- U盘中病毒,文件夹变成exe文件
- android 支付宝 40247,iOS——集成支付宝 系统繁忙,请稍后再试ALI40247
- 吉林大学计算机专硕和学硕的区别,在吉林大学在职研究生项目中专硕和学硕的区别是什么...
- 电信9530手机上面使用移动的SIM卡
- 疯狂的“元宇宙”炒房:有玩家囤了100套房,不到半年翻6倍
- 时间都去哪儿了,你又想让它去哪儿
- 记录:捕鱼达人开发笔记
- 使用python-opencv告警QObject::moveToThread
热门文章
- js 弹出全屏窗效果
- hdmi接口有什么用_电脑上的Type-C接口到底有什么用呢
- ant design Menu组件子菜单样式设置
- fcpx教程从入门到精通「1」初步认识Final Cut Pro
- xp看不到win7共享计算机,WIN7与XP之间共享互通的错误以及解决办法汇总
- Springboot2.x集成ecache3.8.1使用@Cacheable缓存(代码方式,无xml)
- 成都旅游住宿购物交通攻略617
- isNaN()与Number.isNaN()的区别
- 各向异性扩散滤波(Anisotropic Filter)原理与C++实现
- Java定时任务调度工具之Timer