题目链接 AC代码 昨天回上海了,一直都在路上,没啥时间写,今天补上。(快乐的7.1在7.2才开始 这题用单调栈或者笛卡尔树就能解决。 注意到美丽度的定义,对于同一个最小值,区间长度肯定越长越好。 枚举所有最小值,借助单调栈可以找到前面和后面离当前元素最近且比当前元素小的元素下标,以当前元素为最小值 ...
分类:
其他好文 时间:
2021-07-02 16:08:25
阅读次数:
0
给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。 请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。 nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应 ...
分类:
其他好文 时间:
2021-06-02 15:29:57
阅读次数:
0
考虑每个点它能到达的点的集合,可以发现是个 \(V\) 字形的图案,因为每个点第一步只有 \(2\) 种选择。 然后暴力就是用单调栈求出每个点的两条出边后 \(bfs\) 一遍即可。 设 \(C...D\) 段最高的高度为 \(mx\),若 \(B...C-1\) 有比它高的则无解。 \(A...B ...
1. 关于“单调栈”这个数据结构 单调栈(monotonous stack)是指栈的内部从栈底到栈顶满足单调性的栈结构。 其实单调栈就是“栈 + 维护单调性”。 1.1 入栈操作 此处假设单调栈是一个从栈底到栈顶单调递减的栈。为了避免分歧,后文的单调递增和单调递减均指从栈底到栈顶的顺序,后面不再说明 ...
分类:
其他好文 时间:
2021-05-24 10:45:00
阅读次数:
0
题目描述 A group of people are standing in a line. Each person has a distinct height. You would like to count the number of unordered pairs of people in t ...
分类:
其他好文 时间:
2021-04-13 12:06:43
阅读次数:
0
本文总结单调栈算法。 原问题 学习一个算法,我们需要清楚的是:这个算法最原始的问题背景是什么样的? 下一个更小元素 给定一个数组 nums,返回每个元素的下一个更小的元素的下标 res,即 res[i] 记录的是 nums[i] 右端第一个比它小的元素的下标(不存在则为 -1 )。 例如 nums ...
分类:
其他好文 时间:
2021-04-06 14:47:38
阅读次数:
0
给定一个环,环上 n 座山,若连接两座山的两个弧中有任何一个上没有比两座山更高的山,那么这两座山可以互相看见彼此。现在给定 n 座山的高度,求能够看见彼此信号的山的数量。 ...
分类:
其他好文 时间:
2021-02-18 13:17:15
阅读次数:
0
CF802I Fake News (hard) 这个题和 CF123D 很像,代码只有一点点不同。 首先看到子串的问题容易想到后缀数组,所以我们可以先对字符串求一遍后缀数组以及 height 数组。 接下来怎么做?哦们其实可以想得到单调栈。我们可以考虑对于 height 数组维护一个单调递增的栈。一 ...
分类:
编程语言 时间:
2021-02-17 14:52:34
阅读次数:
0
581. 最短无序连续子数组 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入:nums = [2,6,4,8,10,9,15] 输出:5 解释:你只需要对 ...
分类:
编程语言 时间:
2021-01-27 13:10:56
阅读次数:
0
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6592 先分别正着反着求一遍 \(LIS\), 可以证明,字典序最小的单峰序列,一定是先找到最左边的峰点,向左单调栈维护每一个长度的最左边的位置,向右贪心 最大字典序同理 维护单调栈时要注意元素大小的单调 ...
分类:
其他好文 时间:
2020-12-30 10:54:34
阅读次数:
0