考虑暴力分块,对于每一个块维护是不是全相等、全相等的数。则每一个块的数要么是 a 数组要么是全相等的数。并且维护一个树状数组维护当前 a 数组。显然树状数组并不是真正的 a 数组,但如果当一个块不全相等就可以用到了。
对于一操作散块暴力操作(同时维护树状数组)并且之后检查是否全相等(注意到都变成 1 了也全相等所以复杂度比较玄学,当没有二操作的时候最多每个位置会除 log 次),整块如果全相等就一起除,否则也是暴力。
对于二操作散块暴力覆盖(同时维护树状数组),整块直接更新全相等。
对于三操作当全相等了直接算,否则用树状数组算。
代码在此
有没有一种可能复杂度单次 nlog2n 但是能过 /xia