铺设道路

首先观察到操作结果与次序无关,并假设操作(l+1,l)等同于不进行任何操作。 如果原序列中出现了0,任何操作都不能经过这个位置,它的左边和右边就相互独立了,可以分开考虑。 其实这题可以笛卡尔优化 递归求解过程形成的树就是原序列的 笛卡尔树 ,利用构造笛卡尔树的线性做法,可以把这题优化到O(n)。 (其实不用也可以,n只有 1 0 5 10^5 105 #include<bits/stdc++.h>
相关文章
相关标签/搜索