想了很久,主席树,差分什么的,感觉根本行不通,这题其实感觉来源于洛谷P4145花神游历各国,我好惭愧,想到做法时已经写不完了。 很容易想到的就是,我们把所有修改用结构体存起来,并按照字符从大到小排序,那么一个点如果最多只需要被最大的那个字符修改一次,我们可以,也就是说对于一次修改,我们只需要修改区间[l, r]中没有被修改过的点就可以了,我们就可以用并查集来加速找没有被修改过的点这个过程,一个点被修改过,我们直接跳过去就行了 当i这个点没有被修改过时,fa[i] = i, 当i被修改过之后,令fa[i] = i + 1(当前点右边相邻点可能就是下一个需要修改点), 以(i+1)号点为起点,寻找...