糟糕的一天【栈】

我大喊大叫的一天 和你一起终身学习,这里是程序员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

单细胞双胞过滤-scrublet安装

pip install scrublet ----use-pep517有如下报错,分析可知安装annoy时不会自动更新gcc的版本,centos默认是4.8.5。pip install scrublet ----use-pep517 仍然报错,但似乎不影响使用,提示Successfully installed。打开终端,进入Python环境,输入以下代码,查看Python安装位置。暂时还没尝试是否存在问题,如果存在问题,降级scrublet版本。包的开发依赖的是比较低版本的numpy,会用到。

hzau_t的博客 792

复旦微FMQL45T900平台RGMII网口调试实战:从PHY寄存器读取异常到链路建立

本文详细记录了复旦微FMQL45T900平台RGMII网口调试的全过程,重点解决了PHY寄存器读取异常问题。通过电压配置调整、时序优化和硬件信号完整性检查,最终成功建立网络链路。文章提供了实用的调试经验和解决方案,适合嵌入式开发人员参考。

weixin_29193359的博客 288

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

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

weixin_49824291的博客 1000

护网日志分析基础

简要介绍日志分析,给出日志分析的步骤和思路。要求根据日志中的字符串特征,识别攻击者的攻击工具;根据日志中的行为特征,确定攻击者可能的攻击手段等。总结归纳护网中常见的中间件Tomcat、Apache、Weblogic、Nginx、Apache、IIS、MySQL、SQL Server、Oracle的日志路径和日志配置文件路径等。

m0_59302403的博客 3699

[cogs 1117]奶牛排队

.

_Horizon 1483

深信服aCloud虚拟存储VS3.0实战:从数据分片到仲裁机制的全流程解析

本文深度解析了深信服aCloud虚拟存储VS3.0的核心架构与生产级实践。从数据分片、条带化写入、多副本机制到智能缓存分层,详细阐述了其如何实现高性能与高可靠性的平衡。同时,深入剖析了动态均衡、平滑扩容以及故障恢复与仲裁机制,为运维人员和技术决策者提供了在超融合基础架构(HCI)中部署和管理虚拟存储的实战指南。

net55的博客 588

OBC_开环扫频波特图拟合操作流程(结合 Simulink)

摘要: 本文详细介绍了基于Simulink的开环扫频波特图测试与拟合流程,适用于电源/控制系统(如LLC/PFC)的小信号分析。主要内容包括:1)前期准备(测试点选择、信号范围设定);2)Simulink建模方法(信号注入、数据记录);3)两种扫频方式(逐频正弦/Chirp扫频)的实现;4)MATLAB数据处理(FFT分析、传递函数拟合);5)线性分析工具使用技巧。重点强调了激励信号幅值控制、稳态数据采集及模型验证方法,并提供完整MATLAB脚本示例。该流程可有效获取系统频域特性,为控制器设计提供可靠依据。

Sumerking的博客 234

递减栈维护-(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

【webrtc】openh264编码:动态配置码控参数触发IDR编码

SetRates 下发RateControlParameters 给到openh264 编码器 void SetRates(const RateControlParameters& parameters) override; LayerConfig 编码器这边的配置是layerconfig,具体到层的: std::vector<LayerConfig> configurations_; void H264EncoderImpl::SetRates(const RateCo.

突围 724

[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

青少年C/C++软件编程(四级)等级考试真题及答案解析目录

3. 带通配符的字符串匹配。1. 怪盗基德的滑翔翼。3.最长公共子上升序列。4.宠物小精灵之收服。

长春高老师编程 3032

华为OD机试真题 新系统-等距二进制判断(C/C++/Py/Java/Js/Go)

华为OD机试 新系统真题【等距二进制判断】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【等距二进制判断】

qq_45776114的博客 1087

2.1 栈

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

2301_76840743的博客 1443

计算机控制技术及应用

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

第三章 栈与队列 练习题

链接: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照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

单调栈及其应用

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

**祺的博客 901

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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、付费专栏及课程。

余额充值