题意描述

给定牛的高度和噪音值,牛只能听到比它低的牛的噪音,求最大的牛能够听到的噪音值。

思路

我们维护一个单调递减栈,使用一个数组来记录第i只牛所能听到的噪音,最后求最大值即可

AC代码

#include<bits/stdc++.h>
#define x first
#define y second
#define IOS ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
typedef pair<long,long> PLL;
typedef pair<char,char> PCC;
typedef long long LL;
const int N=50050;
const int M=150;
const int INF=0x3f3f3f3f;
const int MOD=998244353;
int Case=1;
int a[N],ans1[N],ans2[N];
void solve(){int n;scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);memset(ans1,0,sizeof ans1);memset(ans2,0,sizeof ans2);stack<int> s;for(int i=1;i<=n;i++){while(!s.empty() && a[s.top()]<a[i]){int t=s.top();s.pop();if(!s.empty()) ans1[s.top()]=t;}s.push(i);}while(!s.empty()){int t=s.top();s.pop();if(!s.empty()) ans1[s.top()]=t;}for(int i=n;i>=1;i--){while(!s.empty() && a[s.top()]<a[i]){int t=s.top();s.pop();if(!s.empty()) ans2[s.top()]=t;}s.push(i);}while(!s.empty()){int t=s.top();s.pop();if(!s.empty()) ans2[s.top()]=t;}printf("Case %d:\n",Case++);for(int i=1;i<=n;i++){printf("%d %d\n",ans2[i],ans1[i]);}
}
int main(){//IOS;int t;cin>>t;while(t--){solve();}return 0;
}

SCU2511(单调栈)相关推荐

  1. POJ2796 Feel Good(单调栈)

    题意: 给出一列数据,要求一个区间内最小值与区间内数据总和乘积最大值 要点: 还是单调栈,这次我自己写的,先做了几题比较简单的果然还是有效果的,这题也是一样,按点遍历,网上大神做的是直接遍历一次即可, ...

  2. 【单调栈 前缀和 异或】7.21序列求和

    还要再细细思考的奇妙思路 题目描述 小A最近喜欢上了关于区间max的问题.她定义一个区间的价值是max(ai)(l<=i<=r)∗(alxoral+1xor...xorar)max(ai) ...

  3. 栈与队列7——单调栈结构(进阶问题)

    题目 一个含有重复值的数组arr,找到每一个i位置左边和右边离i位置最近且值比arr[i]小的位置,返回所有相应的信息. 举例:arr={3,4,1,5,6,2,7},返回如下的二维数组作为结果:{{ ...

  4. 栈与队列7——单调栈结构(初阶问题)

    题目 一个不含有重复值的数组arr,找到每一个i位置左边和右边离i位置最近且值比arr[i]小的位置,返回所有相应的信息. 举例:arr={3,4,1,5,6,2,7},返回如下的二维数组作为结果:{ ...

  5. 单调栈 or 线段树扫描线 ---- E. Delete a Segment [单调栈+二分] [扫描线处理空白位置的技巧乘2]

    题目链接 题目大意: 给出nnn个线段代表集合,现在问若可以将其中任意一个线段删除,则能够形成最多多少个独立的集合(取并集后) 解题思路1: 首先我们先对线段按照起点排序 那么我们枚举删除的线段iii ...

  6. 后缀数组 ---- 2018~2019icpc焦作H题[后缀数组+st表+二分+单调栈]

    题目链接 题目大意: 给出nnn个数,定义f[l,r]f[l,r]f[l,r]表示 区间[l,r][l,r][l,r]的最大值,求所有 子区间的最大值的和,要求相同的子区间只能算一次 比如数列 5 6 ...

  7. [Ahoi2013]差异[后缀数组+单调栈]

    链接 解题思路:很明显前面∑1<=i<j<=nlen(Ti)+len(Tj)\sum_{1<=i<j<=n}len(T_i)+len(T_j)∑1<=i< ...

  8. 【每日训练】2020/11/8(规律 + 二进制、单调栈 + 前缀和,后缀和、bitset + 枚举)

    整理的算法模板合集: ACM模板 目录 1. NC 打铁的箱子(规律 + 二进制) 2. NC 最优屏障(单调栈 + 前缀和,后缀和) 3. CF993C Careful Maneuvering(bi ...

  9. 0x11.基本数据结构 — 栈与单调栈

    目录 一.栈 0.AcWing 41. 包含min函数的栈 (自己造栈) 1.AcWing 128. 编辑器 (对顶栈) 2.AcWing 129. 火车进栈 3.AcWing 130. 火车进出栈问 ...

  10. 【数据结构】单调栈和单调队列 详解+例题剖析

    算法:单调栈和单调队列 一.单调栈和单调队列 二.单调栈例题 1.模板题入门 2.不懂不要急,看这道题 三.单调队列例题 1.入门 2.进阶 一.单调栈和单调队列 单调栈和单调队列与普通的栈,队列不同 ...

最新文章

  1. 如何简化Exchange 2007 OWA URL访问
  2. 多重链表 十字链表存储稀疏矩阵,中缀表达式
  3. 用MediaInfo获取音视频信息
  4. 【一起去大厂系列】什么是回表查询?怎么优化回表查询?
  5. ValueError: do_handshake_on_connect should not be specified for non-blocking sockets
  6. 【数据结构】普通二叉树的实现
  7. 抽象类(纯虚函数、虚函数)和虚基类(虚继承)
  8. 数据挖掘需要学习的内容
  9. 为制造业构建Teams Power App 1:Dataverse入门
  10. 定时关机 v1.0(autoshut v1.0)
  11. (转)理解SQLSERVER中的排序规则
  12. StarCraft的工程师谈美国的游戏开发过程
  13. 为什么其他计算机连接需要密码是什么东西,连接其他电脑需要密码怎么处理
  14. webpack多环境(dev stg prd qa)打包问题
  15. 传奇架设gom引擎常见问题
  16. 数据库表同义词mysql修改_SQLServer中同义词Synonym的用法
  17. win10只能发现部分计算机,Win10的隐藏小秘密,被我发现了
  18. 验证方法学的历史及比较
  19. 100G QSFP28 CLR4单模光模块的介绍及对比
  20. 论文阅读:FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks

热门文章

  1. 【转】91个排名:中国知名个人站长及发家史
  2. 软件测试必备基础知识
  3. 在一个excel里面直接批量从谷歌地图抓取经纬度(vba部分)
  4. 中国电信欢go建立话费话费异常预警(国际)
  5. ipad计算机弹音乐,iPad下的音乐创作工具,Korg发布ELECTRIBE Wave波表音乐创作工具...
  6. 教会你怎么安装和使用 Visio 哦 ~ ~
  7. 如何减少mac动画_如何在Mac上使用减少运动功能减少桌面动画
  8. H3C路由技术笔记——Policy-Based-Route
  9. NLD4J - Arbiter
  10. 零氪科技撤回IPO申请:年亏近5亿 中概股上市已停滞9个月