C,D c++ #雾粉与最小值# 通过单调栈获取已目前这位为最小的区间例如1 3 2,对于i=1,左边有0个<=a[i],右边有3个也就是对于len 1 2 3 的贡献都是1转换为三个等差数列,利用线段树维护,区间修改,区间查找 贡献类似于 1 2 2 2 1 1 2 3 3 2 1 1 2 1 1 1 1 这种 modify(1,len,r,0); modify(1,r,1-r,1); modify(len-r+1,len,0,-1); 对于获取的的区间,从大到小排好,离线处理val也从大到小,对于区间min>=val一个一个加进线段树,然后查询即可 #include <...