之前学了下dls的题解,二维差分的思路看懂了,但是各种细节好麻烦啊orz,写了半个下午写不出来,然后去看别人怎么写的看了看逆十字巨佬们的代码,似乎简洁且明了……于是学习了一下,这题续了一个下午,难受 先考虑一个子问题:给定起点和,要求给分别异或上这个可以通过先打好标记,然后从高往低分裂标记,并且进行异或差分解决,具体而言,就是先打个标记记作,表示一下从开始异或上这么一个,那么全部标记打完之后就可以从高到低遍历把这个标记取掉,每次取掉就相当于给数组这段打上区间异或(可以通过差分解决),然后把这个标记分裂成,,单次复杂度是,所以边打边推肯定不现实,肯定是全部打好一起推。 标记怎么推讲清楚了,看看之...