题目地址  https://www.acwing.com/problem/content/description/602/

约翰有N头奶牛,编号为1到N。

现在这N头奶牛按编号从小到大的顺序站成了一排,其中奶牛 i 的身高为HiHi。

现在,每头奶牛都向它的右侧望向那些编号较大的奶牛,对于奶牛 i 如果存在一头奶牛 j 满足 i<ji<j 并且 Hi<HjHi<Hj,那么我们称奶牛 i 需要仰视奶牛 j。

请你求出每头奶牛的最近仰视对象。

输入格式

第一行包含整数N。

接下来N行,每行包含一个整数HiHi,其中第 i 行的数为编号为 i 的奶牛的高度。

输出格式

共 N 行,每行输出一个整数,其中第 i 行的输出整数表示编号为 i 的奶牛的最近仰视对象的编号,如果不存在仰视对象,则输出0。

数据范围

1≤N≤1e5
1≤Hi≤1e6

输入样例:

输出样例:

单调栈记录最近的未仰视的牛编号(有仰视的答案已经记录了 出栈)

 #include <iostream>
#include <vector>
#include <stack> using namespace std; const int N = 1e5+; vector<int> arr(N,);
vector<int> ans(N,);
stack<int> st;
int n ; int main()
{
cin >> n;
for(int i =;i<= n;i++){
cin >> arr[i];
} for(int i =;i <= n;i++){
while(!st.empty() && arr[i]>arr[st.top()]){
ans[st.top()] = i;
st.pop();
} st.push(i);
} while(!st.empty()){
ans[st.top()] = ;
st.pop();
} for(int i = ;i<=n;i++){
cout << ans[i] << endl;
} return ;
}

acwing 600. 仰视奶牛的更多相关文章

  1. 仰视源代码,实现memcpy

    C++实现内存的复制 通常我们使用深复制就是通过内存复制实现的,可是对象的复制涉及到基类派生类及其相关类的问题.这里不讨论. 目的为了可以明确内存复制的底层实现. void* memcpy(void* ...

  2. 仰视源代码,实现strcpy

    编程实现字符串的拷贝,不能用库函数. 一般的刚開始学习的人也许能写出来.可是要写的非常完美那就须要基本功了. char* strcpy(char* strDest, const char* strSr ...

  3. 仰视源代码,实现strcmp

    //这是系统库的实现 int strcmp(const char* src, const char* dest) { int rtn = 0; while(!(rtn = *(unsigned cha ...

  4. Revit中如何添加水平仰视平面视图

    在Revit平面视图中视角是俯视视角,但是在一些特殊的情况下,我们可能需要创建仰视视角的平面视图,例如我们需要向上看天花板的灯具布置的时候,下面举例说明添加仰视平面视图的方法. 如图在模型中有一楼板跟 ...

  5. 【AC大牛陈鸿的ACM总结贴】【ID AekdyCoin】人家当初也一样是菜鸟

    acm总结帖_By AekdyCoin 各路大牛都在中国大陆的5个赛区结束以后纷纷发出了退役帖,总结帖,或功德圆满,或死不瞑目,而这也许又会造就明年的各种"炸尸"风波.为了考虑在发 ...

  6. 撸一段 SQL ? 还是撸一段代码?

    记得刚入公司带我的研发哥们能写一手漂亮的 SQL,搜索准确.执行快.效率高. 配合Web项目中的查询展示数据的需求,基本是分分钟完成任务. 那段时间基本是仰视的态度,每天都去讨教一点手写 SQL 的要 ...

  7. Unity3D 5.x 简单实例 - 发射炮弹

    1,下载.安装: http://unity3d.com/cn/get-unity/download/archive 建议直接借助 UnityDownloadAssistant 进行安装,根据需要勾选需 ...

  8. <工作一周的心情总结>

    到公司一个星期有余,明天就要周六了,蛮开心的,兴奋的今天下午没看一点代码,哈哈~ 我做的算是代码界里最简单,最好玩,最有成就感的html,web网页的编程. 截止到目前,除了看不懂的JavaScrip ...

  9. 模糊测试——强制发掘安全漏洞的利器(Jolt 大奖精选丛书)

    模糊测试——强制发掘安全漏洞的利器(Jolt 大奖精选丛书) [美]Sutton, M.Greene, A.Amini, P. 著 段念赵勇译 ISBN 978-7-121-21083-9 2013年 ...

随机推荐

  1. MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束

    最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ### ...

  2. 简单了解一下:var 、let、const

    var 重新赋值,重新定义,作用域 属于:function scope: let 声明的变量只在 let 命令所在的代码块内有效,Block scope. const 声明一个只读的常量,一旦声明,常 ...

  3. go笔记--json包使用

    目录 Marshal Unmarshal 处理json对象 @ json包实现了json对象的编解码,参见RFC 4627.Json对象和go类型的映射关系主要通过Marshal和Unmarshal函 ...

  4. .netcore2.1 ef 使用外键关联查询

    //实体类 [Table("invoiceinfo", Schema = "obs")] public class invoice { [Key] public ...

  5. mysql5.7 找回密码

    初次接触数据库,二进制安装了mysql5.7以后发现无法像yum一样在日志中找回初始密码~so 首先关掉启动的数据库: 在my.cnf中新增一句: skip-grant-tables  保存退出重启m ...

  6. (python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, 'Read timed out.')

    (python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, ‘Read timed out.’)pip工具安装百度经验链接: pip安装 ...

  7. CSharpGL(56)[译]Vulkan入门

    CSharpGL(56)[译]Vulkan入门 本文是对(http://ogldev.atspace.co.uk/www/tutorial50/tutorial50.html)的翻译,作为学习Vulk ...

  8. 【一起刷LeetCode】在未排序的数组中找到第 k 个最大的元素

    题目描述 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 ...

  9. 【Linux命令】setfacl、getfacl命令基本用法(文件权限全文控制列表acl)

    一.setfacl命令setfacl用来细分linux下的文件权限. chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限. 换句话说,setf ...

  10. 浅谈Kotlin中的函数

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/UV23Uw_969oVhiOdo4ZKAw作者:连凌能 Kotlin,已经被Android官方 ...