由于是排列,因此b一定只出现了一次,找到出现的位置并向左右扩展考虑如何判定是否满足条件,当且仅当$[左边比b小的数ls]+[右边比b小的数rs]=[左边比b大的数lb]+[右边比b大的数rb]$,暴力枚举+线段树复杂度为$o(n^2logn)$变形上式,得到$ls-lb=rb-rs$,对两边分别处理后对应方案相乘求和即为答案 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,a[100005],s1[200005],s2[20…