题意:给定N,表示N堆石子,每堆石子数为a[],问多少个区间,可以满足“石子总和若为偶数,那么可以两两取来自不同堆的石子,直到取完: 如果为奇数,那么排除其中一个,然后可以两两取来自不同堆的石子,直到取完”. 思路:结论是,如果一个区间的区间和大于等于区间最大值的两倍,则这个区间合法. 考虑分治,我们首先找到区间最大值(为了不重复统计,多个最大值时,统一取最左边的,这个可以ST表示实现),然后考虑跨越这个位置的合法区间个数.枚举一端,另外一段二分即可. 由于分治的性质,我们每次的复杂度要倾向于小…