糟糕的一天【栈】

我大喊大叫的一天 和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:我的大喊大叫的一天经典好文推荐,通过阅读本文,您将收获以下知识点:小女孩贝拉度过了糟糕的一天——她几乎事事不顺心,唯一能做的就是大喊大叫。幸好,糟糕的日子不会一直持续下去……因为无论发生什么事,妈妈的拥抱仍是那么温暖,妈妈的爱仍在身边。这一天,贝拉还学会了一个魔法口诀——“对不起”。我的大喊大叫的一天我有一... 阅读详情

题目大意:

nn头奶牛排成一列,后面的奶牛可以看见前面比它矮的,切没有被更高奶牛挡住的牛。求所有奶牛一共可以看见多少头奶牛?


思路:

很明显,这道题是一个单调栈。
啥?你问我单调栈是啥?不就是单调的栈吗。
将奶牛一个一个进栈,同时保证栈里面的数字单调递减(后面必须看得见前面),每次进栈之后求出最后面一头牛能看见前面的牛的数量,输出答案即可。
时间复杂度:O(n)


代码:

#include <cstdio>
#include <iostream>
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
using namespace std;

long long s[100011],n,a[100011],sum,tail;

int main()
{
    fre(badhair);
    cin>>n;
    tail=0;
    a[0]=1e17;
    for (long long i=1;i<=n;i++)
     cin>>a[i];
    for (long long i=1;i<=n;i++)
    {
        while (a[i]>=s[tail]&&tail) tail--;  //模拟栈(可以用queue)
        tail++; 
        s[tail]=a[i];  //进栈
        sum=sum+tail-1;  //求出答案
    }
    cout<<sum<<"\n";
    return 0;
}
2022年09月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试 栈和队列都是常用的线性结构,它们都提供两个操作:Push:加入一个元素。Pop:弹出一个元素。不同的是,栈是”先进后出”,而队列则是”先进先出”。给出一个线性结构的进出顺序,判定这个结构是栈还是队列。时间限制:1000内存限制:65535第一行输入一个整数t,代表有t组测试数据 对于每组测试数据,第一行输入一个整数n,代表操作的次数。随后输入n行,每行包含两个整数 type val。当type = 1时,表示该次操作为push操作,val表示进入的数字。 阅读详情

相关推荐

2022-09-17青少年软件编程(C语言)等级考试试卷(六级)解析

2022-09-17青少年软件编程(C语言)等级考试试卷(六级)解析

lybc2019的博客 1298

[USACO06NOV]糟糕的一天Bad Hair Day BZOJ 1660 单调栈

[USACO06NOV]糟糕的一天Bad Hair Day BZOJ 1660 单调栈 农民John的某 N 头奶牛 (1 &lt;= N &lt;= 80,000) 正在过乱头发节!由于每头牛都 意识到自己凌乱不堪的发型, FJ 希望统计出能够看到其他牛的头发的牛的数量。 每一头牛 i有一个高度 h[i] (1 &lt;= h[i] &lt;=...

loooooog的博客 245

2022 年 9 月青少年软编等考 C 语言六级真题解析

2022 年 9 月青少年软编等考 C 语言六级真题解析。

发布少儿编程考级的真题和优秀竞赛题解析,以及一些讲义。 869

发型糟糕的一天

总时间限制:2000ms 单个测试点时间限制: 1000ms 内存限制:65536kB 描述 农夫John 的N(1 ≤ N ≤ 80,000)只奶牛中,有一些也许正在经历发型糟糕的一天。每只奶牛对自己乱糟糟的发型都有自知之明,农夫John想知道所有奶牛能看到其他奶牛头顶的数量之和。 任意奶牛i身高记为 hi (1 ≤ hi ≤ 1,000,000,000),所有奶牛面向东方(本题示意图的右面)依次站成一条线。因此,奶牛i能够看到在它前面的(奶牛i+1,i+2…)所有身高比它低的奶牛,直到被一..

w112348的博客 409

一个响应ping包延迟偏大的问题

前段时间客户反馈一个使用pc上的命令行ping无线设备(WiFi4)时,设备平均响应时间(测试时长2小时,1秒Ping一次)相比其它机型偏慢的问题,并上传上具体的时间的Log.从log中看到,大多数包的响应还是比较快的,只是个别响应时间较长,且响应时间长的包时间几乎都是一样的100多ms.如下是部分响应时间截图. 整个2小时的测试时间里,总是时不时的出这么上102,104ms的响应时间,这直接导致了平均响应时间被拉大.于是本地测试,也发现了类似的延迟.本地测试时,现象略有...

流风回雪的博客 1万+

大象机器人myAGV移动机器人+mechArm六轴机械臂,开源复合机器人开发与实践!

我们这章节的内容是将协作性机械臂打破距离上的限制,跟移动机器人(myAGV)相连接,实现一个案例。

m0_71627844的博客 1488

P6510 奶牛排队(单调栈+二分)

P6510 奶牛排队 该题要求找出符合条件的最多奶牛数,条件是A作为左端点最矮,B作为右端点最高,中间不能有与A,B相同身高的奶牛,枚举每个端点作为预备B端点,则A端点一定在左边比B端点高的奶牛的后面,也就是找到左边第一个比该点大的数,这个可以用单调栈完成,这个点暂时称为X点,接下来,找A端点,A的条件是在A-B之间没有比它矮的,也就是X-B之间最小的点,该点到B的距离为最长,难点来了,如何维护呢,看完别人的题解才知道,可以用俩个单调栈来维护,通过单调递减栈找到左边第一个大于B的点x,而如何找到x点

weixin_49824291的博客 1000

YOLOv8【第十一章:视频追踪与流处理篇·第16节】一文搞懂,DeepStream 部署入门:NVIDIA 视频分析 SDK 与 YOLOv8 结合!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 838

[cogs 1117]奶牛排队

.

_Horizon 1483

Amber&pdb4amber | 准备PDB文件

PDB文件中唯一需要或有用的数据来设置AMBER模拟是:原子名称,残基名称,也许还有链标识符(如果存在多条链),以及重原子的坐标。除非加载额外的文库,否则非蛋白质结构(特别是低分子量配体)会引起问题;如果它们在PDB文件中的名称对应于AMBER库中的内部名称,则通常会识别水和单原子离子。–dry选项移除结构中的结晶水和–reduce选项在最理想的位置添加氢原子.为tleap程序调整从外部获得的PDB文件。

ASKCOS博客 897

linux驱动由浅入深系列:基于高通平台分析触摸屏(TP)、虚拟按键驱动

触摸屏的触摸板(touch panel简称TP)驱动的基本架构和普通按键驱动基本一致,可以参考文章:linux驱动由浅入深系列:输入子系统之二(编写一个gpio_key驱动)。只是其功能稍稍复杂些,配置也多些,下面一起来看一下。 TP包括 触摸屏、虚拟按键、虚拟按键背光灯 TP驱动芯片厂商主要有:Goodix(汇顶),FocalTech(敦泰科技),cypress(赛普拉斯),synapt

Radia的专栏 4767

递减栈维护-(POJ3250)Bad Hair Day(发型糟糕的一天)

递减栈维护-(POJ3250)Bad Hair Day(发型糟糕的一天) 题目链接:发型糟糕的一天 思路一: 从前往后栈,按顺序进入一个身高值,将栈中 小于(或等于)该身高的数据弹出,栈中剩下的元素对应的牛都能看见该身高的牛。算出num后入栈该身高 栗子:10 3 7 4 12 2 ①Height_List:10    入栈首身高 ②3&lt;10,不弹出,num=...

[SZU_Crayon] 940

深入理解Android音视频同步机制(三)NuPlayer的avsync逻辑

本文深入介绍了NuPlayer的avsync逻辑和原理

张晖的专栏 1万+

[USACO06NOV]糟糕的一天Bad Hair Day(洛谷P2866)

[USACO06NOV]糟糕的一天Bad Hair Day 题目描述 Some of Farmer John’s N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is self-conscious about her messy hairstyle, FJ wants to count the number of ...

不知所云的博客 1142

拉曼光谱入门:10.显微拉曼与共聚焦技术

本文系统阐述了显微拉曼光谱技术与共聚焦原理的融合机制,详细解析了从激光激发、针孔空间滤波到光谱采集的完整光路架构,阐明了共聚焦设计在提升三维空间分辨率、抑制荧光背景及实现微区无损层析方面的核心优势,并探讨了关键光学器件的性能边界与系统技术局限。

qq_53529450的博客 167

【AVRCP】规范精讲[19]: 媒体属性全解析,让你的蓝牙设备显示完整歌曲信息

AVRCP协议中的媒体属性是蓝牙音频设备传输歌曲元数据的关键,包含标题、艺术家、专辑等32位ID标识的键值对信息。规范要求字符串属性必须使用UTF-8编码,但乱码问题频发(如中文显示异常),主因是设备未遵循编码标准或使用GBK等非规范格式。常见问题包括信息不全(仅显示标题)、封面缺失(因带宽限制或格式不支持)及更新延迟(通知机制未启用)。解决方案包括强制UTF-8编码、优化封面大小(如300x300像素JPEG)、主动请求缺失属性。Android示例代码展示了通过广播接收器解析媒体属性的方法。

byte轻骑兵的技术小窝 1万+

2.1 栈

后进先出 (Last In First Out):一种限制访问端口的线性表主要操作:进栈 (push) 出栈 (pop)

2301_76840743的博客 1443

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

第三章 栈与队列 练习题

链接:http://dsalgo.openjudge.cn/stackqueue/1/ 来源:数据结构与算法MOOC 文章目录1:用队列对扑克牌排序2:栈的基本操作3:stack or queue4:双端队列5:等价表达式8:抓住那头牛9:发型糟糕的一天10:括号画家11:机器翻译 1:用队列对扑克牌排序 #include<bits/stdc++.h> using namespac...

Sun 871

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

单调栈及其应用

单调栈是一种内部元素具有单调性的栈,可以解决“以某个值为最值的最大区间”等问题。 能以O(n)的时间复杂度找到每一个元素右边或左边第一个比它大或小的数。(超级好用艾~ 不然可能就得用(毒瘤的)二分+RMQ惹QAQ) 1.糟糕的一天(洛谷P2866, USACO 2006 月赛) 2.天气变化 3.长方形(洛谷P1950)......

**祺的博客 901

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

没有计算机的一天英语作文带翻译,美好的一天糟糕的一天英语作文带翻译

010在线为您甄选多篇描写美好的一天糟糕的一天英语作文带翻译,美好的一天糟糕的一天英语作文带翻译精选,美好的一天糟糕的一天英语作文带翻译大全,有议论,叙事 ,想象等形式。文章字数有400字、600字、800字....缓存时间: 2021-06-17导语:一年中会有那么一天对你意义重大,这一天对你来说是美好的,下面是yuwenmi小编为大家整理的优秀英语作文,欢迎阅读与借鉴,谢谢!三年级英语作文:A...

weixin_29359001的博客 677

Openjudge 发型糟糕的一天

Openjudge 数据结构与算法MOOC 发型糟糕的一天

qq_51767234的博客 596

糟糕的一天

今天心情很糟糕    2份赞助都悬着   班主任又催交住宿费     生活了然无趣

woshilv1的专栏 496

POJ 3058发型糟糕的一天

原题:POJ 3058发型糟糕的一天 思路:用一个单调递减的栈保存奶牛的身高,从前往后依次遍历奶牛,每次遍历时统计当前可以看到的奶牛数,维护栈的单调性。 需要注意的是最终的结果是超过int范围的,相同身高的奶牛是无法看到头顶的。 代码: #include <iostream> #include <stack> using namespace std; #define MAX 80010 unsigned int data[MAX]; int main() { int N

weixin_43865957的博客 281

优秀的代码 vs. 糟糕的代码

文章链接: http://harttle.com/2015/04/13/elegant-and-bad.html 可持续开发不仅在于项目架构设计,还与代码质量密切相关,代码的整洁度和质量成正比。—— Robert C. Martin, “Clean Code” 如果你还没有发现代码质量的区别,如果你从未见过优秀的代码,或者从未见过糟糕的代码,那么本文将以直观地对比,告诉你代码质量究竟会有多大的区

分享技术,共建开放平台 3310

发型糟糕的一天 OJ

#include <iostream> #include <stack> using namespace std; int main() { int cowNum; cin >> cowNum; stack<long> cows; long result = 0; for (int i = 0; i < cowNum; i++) { long h; cin >&gt.

weixin_38281074的博客 183
上一篇: 2018年暑假 纪中培训总结
下一篇: 路障【SPFA】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值