摘要:
这题过得很艰辛啊。最早在去年网络赛时就见到这题了,当时是不会。前段时间好好学了一下后缀数组,昨天再来看这题,就知道显然是后缀数组的应用了。我知道解这道题肯定是类似于用后缀数组求字符串所有不同子串个数的思路。但一开始想走捷径,想法是先把所有的b连起来,再连上a,并通过在a后面加上一些特定字符的方法,使在sa中a的子串都排在b的后面,这样只要倒着统计一遍就行了。代码打完后才想明白这是完全行不通的。正确思路只能是分两次做,一次是只把所有的b连起来,求出所有不同子串数sumb,第二次是把a也连上,求出所有不同子串数sumab,最后结果就是sumab - sumb。具体实现过程也有好多需要注意的,比如, 阅读全文