糟糕的一天【栈】

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

Origin 2025b中文版安装全指南:避开乱码、水印与崩溃陷阱

Origin作为科研绘图领域的事实标准,其2025b版本首次官方支持简体中文UI,但安装远非‘下一步’即可完成。核心在于理解软件本体、语言包、许可证服务与系统区域设置四者间的耦合关系——尤其Windows非Unicode程序语言必须设为‘中文(简体,中国)’,否则必然触发坐标轴乱码、PDF文字方块等典型故障;而AI辅助拟合、内置Python 3.11等新特性,又依赖正确的字体链(如SimSun)与注册表强制加载(UILanguage=zh-CN)才能稳定启用。该版本广泛应用于材料科学、电化学、XRD/SEM

weixin_42548874的博客 1406

新手小白如何学习编程

学习目标推荐第一门语言优势网站 / APP 开发(前端)JavaScript浏览器原生支持,能快速做出可视化效果后端 / 服务器 / 数据分析Python语法简洁像英语,库多、应用广(入门友好)游戏开发先用电竞入门,再转专业引擎硬件 / 嵌入式(比如单片机)C 语言贴近硬件,行业标准办公自动化(Excel / 文档处理)Python快速解决重复工作(比如批量改文件)👉新手首选推荐。

2501_94331842的博客 2232

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

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

weixin_49824291的博客 1000

OpenWRT端口转发与NAT环回冲突的排查与解决

本文详细解析了OpenWRT路由器中端口转发与NAT环回功能冲突导致的内网访问故障。通过生活化类比阐明两者工作原理,提供从基础诊断到内核参数调整、LuCI选项配置及手动编写iptables规则的多套解决方案,并给出进阶排查思路,帮助用户彻底解决内网无法通过公网地址访问服务的常见问题。

weixin_29243279的博客 507

[cogs 1117]奶牛排队

.

_Horizon 1483

语音增强评价指标全解析:从MOS到eSTOI的实战指南

本文全面解析了语音增强领域的核心评价指标,包括主观评价的黄金标准MOS,以及PESQ、STOI、eSTOI等关键客观指标。文章详细阐述了各指标的原理、适用场景与实战计算方法,并提供了Python代码示例,旨在帮助开发者和研究者建立科学的评估体系,以平衡语音可懂度与音质,从而优化算法效果。

yhn456789的博客 1199

【ArcGIS Engine二次开发】入门基础(2):ArcGIS开发方式(VBA、DLL、Add-in、Engine)对比

文章目录2.1 使用VBA进行桌面软件开发2.1.1 VBA开发方式2.1.1 VBA代码的安全性2.2 使用DLL进行桌面软件开发2.2.1 DLL开发方式2.2.2 DLL功能的应用部署2.3 使用Add-in进行桌面软件开发2.4 使用ArcGIS Engine构建独立应用程序 对于桌面GIS应用来说,ArcGIS平台不仅提供了用于开发独立运行的GIS应用软件的二次开发工包ArcGIS Engine,还提供了对ArcGIS Deskop桌面软件进行扩展的开发的话,在开发个具体的GIS 行业应用软件时

智慧空间实验室 6509

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

YOLOv8独家原创改进:原创自研 | 自研独家创新DSAM注意力 ,基于BiLevelRoutingAttention注意力升级

提出新颖的注意力DSAM(Deformable Bi-level SpatialAttention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的Deformable Bi-level Attention+Spartial Attention

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1512

[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

安卓讲课笔记1.1 安装Android Studio

1. 能安装配置Android Studio; 2. 能创建安卓虚拟机(AVD); 3. 能创建简单安卓应用

howard2005的专栏 3363

YOLO26涨点改进 | 全网独家,注意力创新改进篇 | Arxiv2025 | YOLO26引入MSLA多尺度线性注意力模块,高效提取多尺度特征和建模长程依赖,含多种创新改进,助力有效涨点

本文提出了一种多尺度线性注意力模块(MSLA)来优化YOLO26模型。MSLA通过并行使用不同尺寸的深度可分离卷积(3×3至9×9)提取多尺度特征,并结合线性注意力机制高效建模全局依赖关系。该模块显著提升了模型对多尺度目标的检测能力,同时保持了轻量化特性。实验表明,MSLA能有效增强小目标检测和复杂场景下的分割精度。文章详细介绍了MSLA的网络结构、核心优势及实现代码,并提供了两种集成MSLA的YOLO26改进方案,为实时目标检测任务提供了高效解决方案。

Ai缝合怪、助力小伙伴高效发论文 295

2.1 栈

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

2301_76840743的博客 1443

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

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

第三章 栈与队列 练习题

链接: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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

单调栈及其应用

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

**祺的博客 901

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

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

余额充值