解题思路
使用前缀最大值和后缀最大值。
对于位置 i:
左侧需要找到 1 到 i−1 中的最大值,如果最大值出现多次,取离 i 最近的,也就是最靠右的位置。
右侧需要找到 i+1 到 n 中的最大值,如果最大值出现多次,取离 i 最近的,也就是最靠左的位置。
P4993.第1题-数组中的 “沉默元素” 计数
题目内容
Tk 有一个长度为 n 的数组 {a1,a2,…,an},对于下标满足 1<i<n 的元素 ai,若其左侧所有元素的最大值到它的距离,等于其右侧所有元素的最大值到它的距离,那么这个数字就是沉默的。若左侧(或右侧)区域存在多个数值相等的最大值,则选择其中与 i 距离最近的下标计算距离。
Tk 想知道数组中一共有多少位置不同的沉默的数字,请输出这个值。
输入描述
每个测试文件均包含多组测试数据。
- 第一行输入一个整数 T(1≤T≤104),代表数据组数。
- 每组测试数据描述如下:
- 第一行输入一个整数 n(3≤n≤2×105),表示数组长度。
- 第二行输入 n 个整数 a1,a2,…,an(1≤ai≤109),表示数组
a。
- 保证单个测试文件的 n 之和不超过 2×105。
输出描述
对于每一组测试数据,新起一行,输出一个整数表示结果。
样例1
输入
2
3
1 1 1
5
1 4 4 5 2
输出
1
2