目录:

  • 题目:
  • 分析:
    • 80分:
    • 100分(AC):
  • 代码:
    • 80分:
    • 100分(AC)

题目:

传送门


分析:

80分:

按照普通的单调栈的做法,每加入一个人,就开始操作:当当前栈顶小于这个人的身高时,那么就对答案进行累加,并且弹出栈顶。最后加入这个人。
但为了方便,我们就将与我们自己相同的都弹出,这样就可以更为方便的查看是否有比我高一级的,当确认完后,再把相同的和自己都加入到栈中就好了。

x=read();t=1;
while(s.size()>0&&x>=s.top())
{if(s.top()==x) t++;ans++;s.pop();
}
if(s.size()>0) ans++;

100分(AC):

其实也没什么就是用一个pairpairpair一维数组模拟栈,pairpairpair的firstfirstfirst位置存放身高,pairpairpair的secondsecondsecond位置存放firstfirstfirst身高的人数,然后再按照808080分的方法去做,就可以优化掉相同身高的时间,从而减少时间复杂度。


最后给大家提个醒,就是结果要用longlonglong longlonglong(int64int64int64)保存,不然就会WAWAWA三个超级数据


代码:

80分:

// luogu-judger-enable-o2
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<map>
#include<deque>
#include<stack>
#define LL long long
using namespace std;
inline LL read() {LL d=0,f=1;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}return d*f;
}
int ans=0;
stack<int> s;
int x;
int main()
{int n=read(),t;for(int i=1;i<=n;i++){x=read();t=1;while(s.size()>0&&x>=s.top()){if(s.top()==x) t++;ans++;s.pop();}if(s.size()>0) ans++;for(int j=1;j<=t;j++) s.push(x);}printf("%d",ans);return 0;
}

100分(AC)

// luogu-judger-enable-o2
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<map>
#include<deque>
#include<stack>
#define LL long long
using namespace std;
inline LL read() {LL d=0,f=1;char s=getchar();while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();}return d*f;
}
long long ans;
int x,n,top=0;
pair<int,int>s[500001];
int main()
{n=read();for(int i=1;i<=n;i++){x=read();while(top&&x>s[top].first) ans+=s[top--].second;if(x==s[top].first){if(top>1) ans++;ans+=s[top].second++;}else{if(top) ans++;s[++top]=make_pair(x,1);}}printf("%lld",ans);return 0;
}

洛谷 P1823 [COI2007] Patrik 音乐会的等待相关推荐

  1. 【题解】洛谷P1823 [COI2007]Patrik音乐会的等待

    前往:我自己搭建的博客 题目 洛谷P1823[COI2007]Patrik音乐会的等待 题解 使用单调栈维护一个不严格递减的数列,将新的元素与栈顶元素依次比较,如果符合要求(能互相看到)就计数,同时维 ...

  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. 音乐会的等待-单调栈

    关于本题,这里只是基础的写法,完美的避开了特殊情况,另一篇博文会详细讲解特殊情况 [COI2007] Patrik 音乐会的等待 题目描述 N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转 ...

  9. Java 洛谷 提交完题目的代码之后一直停留在 ( 正在等待编译……),刷新页面之后 ,显示 Unaccepted 0分

    在洛谷刷题的时候遇到了这样的问题: 提交完题目的代码之后一直停留在 ( 正在等待编译--),刷新页面之后 ,显示 Unaccepted 0分 解决方法: 1.检查你的类名是否是 Main 2.检查你的 ...

最新文章

  1. 如何使用python画折线图-Python数据可视化:使用Python画柱状图和折线图
  2. RealSense开发-Session和SenseManager的几种创建方法
  3. LeetCode之简单回文数
  4. Android笔记 fragment入门 动态加载fragment demo+ 判断横竖屏
  5. 【linux】io_uring 和 eBPF 将如何彻底改变 Linux 中的编程
  6. Win10 - 下方【任务栏】- 颜色设置方法
  7. WPF 弹框 并自动关闭
  8. 14届数独-真题标准数独-Day 2-20220117
  9. 【有问不答】一维信号临界采样/过采样/欠采样,并利用插值公式恢复信号(MATLAB)
  10. 架构师培训,如何低成本体系性学习? + 最佳实践架构师+自学+老师型:
  11. 我司何晓磊受邀在“科创中国”做”创新”课程分享
  12. 小米手机用什么耳机音质好?发烧级音质蓝牙耳机推荐
  13. EXE转JPG后缀格式工具(真实JPG后缀)
  14. 清华计算几何大作业(一):CG2017 PA1-1 Convex Hull (凸包)
  15. 高斯-约当消元法(转)
  16. 无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同
  17. php中文输出有乱码怎么办,php中文输出乱码怎么办
  18. 关于短视频平台框架搭建与技术选型探讨
  19. Socks 正向代理 - Srelay
  20. 计算机二级word云计算机交流,全国计算机二级office-word-历年真题5.docx

热门文章

  1. DDD实战课(实战篇)--学习笔记
  2. 联想笔记本打开野兽模式
  3. echarts.min.js从官网的下载步骤
  4. Qt之撤销命令视图的使用(QUndoView)
  5. 广东二本计算机专业大学排名及分数线,2021年广东二本大学排名及分数线(完整版)...
  6. Drynx: 基于区块链的去中心化隐私保护机器学习系统
  7. $vjudge-$基本算法专题题解
  8. 针对宽带拨号错误代码及解决方法
  9. 2022.9.21 罗尔定理
  10. 常见的RC是什么意思