[USACO09MAR]向右看齐Look Up

题目描述

Farmer John’s N (1 <= N <= 100,000) cows, conveniently numbered 1..N, are once again standing in a row. Cow i has height H_i (1 <= H_i <= 1,000,000).

Each cow is looking to her left toward those with higher index numbers. We say that cow i ‘looks up’ to cow j if i < j and H_i < H_j. For each cow i, FJ would like to know the index of the first cow in line looked up to by cow i.

Note: about 50% of the test data will have N <= 1,000.

约翰的N(1≤N≤10^5)头奶牛站成一排,奶牛i的身高是Hi(l≤Hi≤1,000,000).现在,每只奶牛都在向右看齐.对于奶牛i,如果奶牛j满足i

Input

输入输出格式

输入格式:
* Line 1: A single integer: N

  • Lines 2..N+1: Line i+1 contains the single integer: H_i

第 1 行输入 N,之后每行输入一个身高 H_i。

输出格式:
* Lines 1..N: Line i contains a single integer representing the smallest index of a cow up to which cow i looks. If no such cow exists, print 0.

共 N 行,按顺序每行输出一只奶牛的最近仰望对象,如果没有仰望对象,输出 0。

输入输出样例

输入样例#1:
6
3
2
6
1
1
2
输出样例#1:
3
3
0
6
6
0

说明

FJ has six cows of heights 3, 2, 6, 1, 1, and 2.

Cows 1 and 2 both look up to cow 3; cows 4 and 5 both look up to cow 6; and cows 3 and 6 do not look up to any cow.

【输入说明】6 头奶牛的身高分别为 3, 2, 6, 1, 1, 2.

【输出说明】奶牛#1,#2 仰望奶牛#3,奶牛#4,#5 仰望奶牛#6,奶牛#3 和#6 没有仰望对象。

【数据规模】

对于 20%的数据: 1≤N≤10;

对于 50%的数据: 1≤N≤1,000;

对于 100%的数据:1≤N≤100,000;1≤H_i≤1,000,000;

题解:

   本题是模拟题(当然,也有人用栈来写)
   答案要求最近仰慕对象,而只能像右仰慕,便想到了先for1~n,再从右往左枚举(这样就会更新到最近的了)。但如果一个一个枚举的话会超时,所以不能套两个for。
   经过思考,我们发现如果对于i点,j点不能够成为它的仰慕对象,那么j点的仰慕对象能不能成为i点的仰慕对象呢?这就产生了类似链表的结构,而时间复杂度应当是O(n log n)的吧。

#include <iostream>
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;int n,j;
int h[100010],f[100010];
int main(){scanf("%d",&n);for (int i=1; i<=n; i++) scanf("%d",&h[i]);for (int i=n-1; i>=1; i--){//先处理后面牛牛(j)的仰慕对象,方便后面牛牛(j)不能够成为的前面牛牛(i)仰慕对象时,去找j牛牛的仰慕对象j=i+1;while(h[i]>=h[j] && h[j]>0)j=f[j];f[i]=j;}for (int i=1; i<=n; i++) printf("%d\n",f[i]);return 0;
} 

P2947 [USACO09MAR]向右看齐Look Up相关推荐

  1. 洛谷 P2947 [USACO09MAR]向右看齐Look Up (队列)

    题目描述 Farmer John's N (1 <= N <= 100,000) cows, conveniently numbered 1..N, are once again stan ...

  2. [USACO09MAR]向右看齐Look Up(单调栈、在线处理)

    https://www.luogu.org/problem/P2947 题目描述 Farmer John's N (1 <= N <= 100,000) cows, convenientl ...

  3. 洛谷 - [USACO09MAR]向右看齐Look Up(单调栈)

    题目链接:https://www.luogu.org/problem/P2947 时间限制: 1.00s 内存限制: 125.00MB 题目描述 Farmer John's N ( 1 ≤ N ≤ 1 ...

  4. LuoGu_2947 [USACO09MAR] 向右看齐 Look Up

    题目描述 约翰的N(1≤N≤10^5)头奶牛站成一排,奶牛i的身高是Hi(l≤Hi≤1,000,000).现在,每只奶牛都在向右看齐.对于奶牛i,如果奶牛j满足i<j且Hi<Hj,我们可以 ...

  5. 【洛谷P2947】向右看齐

    向右看齐 题目链接 此题可用单调栈O(n)求解 维护一个单调递减栈,元素从左到右入栈 若新加元素大于栈中元素,则栈中元素的仰望对象即为新加元素 每次将小于新加元素的栈中元素弹出,记录下答案 1 #in ...

  6. [USACO09MAR]向右看齐Look Up————单调栈

    题解:本题主要考查单调栈.先构建一个栈,如果比栈顶的数大就a[i]是之前栈顶数的仰望对象,记录它的仰望对象并将原来栈顶的数出栈,反之再将a[i]进栈. 代码如下: #include<iostre ...

  7. 单调队列————[USACO09MAR]向右看齐Look Up

    先了解一下单调队列: 很明显的具有单调性 分为单调递增和单调递减两种,简单点讲就是维护队头为最大值或者为最小值 (建议采用双向队列  比较好写) 具体步骤:(这个是单调递减) 如果队列非空且当前值比队 ...

  8. c语言编程*三角形图形右看齐,EOJ 3213 向右看齐

    题目描述 N 头奶牛被紧急动员起来了,它们排成了一条长列.从左向右看,排在第 i 个位置的奶牛身高为 Hi.约翰一声令下,所有奶牛向右看齐.假设每头奶牛只能看到比自己高的牛.请问它们各自看到的最近的一 ...

  9. P2947 向右看齐

    题目描述 约翰的N(1≤N≤10^5)头奶牛站成一排,奶牛i的身高是Hi(l≤Hi≤1,000,000).现在,每只奶牛都在向右看齐.对于奶牛i,如果奶牛j满足i<j且Hi<Hj,我们可以 ...

最新文章

  1. python 实现延迟的操作
  2. 纯CSS3制作的圆角效果按钮菜单
  3. 计算机中丢失sense3.dll,sense3.dll
  4. Avalonia跨平台入门第十四篇之ListBox折叠列表
  5. IIS 部署asp.net Core程序注意事项
  6. 计算机管理员受限用户,如何设置权限,使管理员能上网,而受限用户却不能上网?...
  7. 华为服务器驱动_不可错过的华为核心概念股
  8. c语言链表插入尾部,为什么我的程序一执行插入链表尾部,再执行别的操作就会出现问题,...
  9. TMGM外汇平台官网最全测评(2022年版)
  10. 懒人——支付宝app支付
  11. w10怎样关闭对计算机更改,w10电脑定时关机怎么设置 让w10系统自动关闭的设置方法...
  12. 服务器蓝屏 查看系统日志文件,教你电脑查看系统蓝屏日志的具体方法
  13. SIP穿越NAT SIP穿越防火墙
  14. 硬盘底座linux,ORICO推出全透明硬盘底座、移动硬盘盒
  15. 看了这篇文章,再也不用找人设计名片卡证啦!
  16. (转)JAVA 十六个常用工具类
  17. 为什么吃鸡体验服说当前服务器正在维护,“吃鸡”玩家盼了90天的体验服,发来“41字提醒”,含泪退出了!...
  18. 欧盟非个人数据流动监管新进展
  19. 2J53磁滞电动机转子永磁和金
  20. java 使用itext合并多个pdf文件成一个pdf

热门文章

  1. excel向程序发送命令时出现错误
  2. 回音壁模式matlab,一种回音壁模式光学微腔的制作方法
  3. 计算机二级应用软件打不开怎么办,电脑软件打不开没反应怎么办?
  4. “优必选“杯2021中国机器人技能大赛--赛后总结
  5. 如何白手起家挣到一百万?
  6. 【算法基础26】贪心下——哈夫曼树、排序不等式、绝对值不等式、推公式的思路与应用
  7. NID修改数据库名称时候碰到NID-00137
  8. HTTP Agent理解
  9. sqlite3出现SQLITE_BUSY错误码的原因以及解决方法
  10. mysql slave是什么_是mysql作用