(T1:)
分块,块内排序,因为M操作只有递增时有用,所以可以每次在块上暴力移动指针,均摊下来是对的
利用差分(O(1))记录M操作使权值变化的次数,每次询问时重构所在块即可
A操作很简单,整块打标记,两端暴力重构即可
因为重构的块数是(O(n))的,所以每次暴力sort就行了,复杂度是加起来的
最终复杂度为(O(n sqrt n +n log sqrt n ))
(T2:)
题解说的对啊!
(T3:)
考虑最小割,然后样例就炸了
发现有些路径经过了不止一条边,又发现这些路径都是从S集合->T集合->S集合->T集合
其中都经过了一条从T集合到S集合的边
考虑如何求在割去这种边的情况下的最小割
将反边设置为INF即可