正题
没有Portal
因为我自己也没有做掉这题,因为我还想再想想。
我是这样想的,考虑一个栈没有限制的时候的出栈顺序,有:
我们令第i个元素最后出栈,前i-1个元素先出栈,再让后n-1-i个元素出栈。
显然i最后出栈前面两部分不能调换。
转化为更通俗易懂的形式:
接下来,我们考虑给出的要求x在y之前出栈,显然只对的区间造成影响。
若,那么说明转移的,因为这样的话x就最后出来了,否则其他情况x都比y先出来。
若,那么说明转移的,取这个区间会导致y在x前面出来。
我们对于每一个k开一个二维数组来存储是否可以用k来转移。
一开始肯定可以,对于一个操作,向上面分类讨论那样,对于的区间打标记就可以了。
相当于一个矩阵标记,差分最后前缀和即可。