题目:http://noi.ac/problem/32 从全是0和1的情况入手,可以像线段树一样分治下去,回到本层的时候就是左半部的右边是1,右半部的左边是0,把这两部分换一下就行.代价和时间一样是nlogn. 不全是0和1,可以像快速排序一样,先找一个基准,然后小于它的是0.大于它的是1,调用上一行的那个函数:本层弄好0和1以后,递归到全是0的部分和全是1的部分即可.这样代价和时间都是nlog^2n. 那个基准找得不好的话,一不小心就陷入死循环.所以自己还专门unique了一下,确保不会递归到…