思路
设\(dp_i\)表示以\(i\)结尾的\(A\)串,能达到的最长长度。
然后发现这显然可以\(i\)往自己控制的\(k\)连边,\(k\)往能匹配的\(j\)连边,就是个最长路,只要建出图来就完事了。
显然可以用数据结构得到两点之间是否有边,于是就获得了40分的好成绩。
考虑优化这个建图,字符串也就那么几个数据结构,那就后缀树吧。
有了后缀树,可以发现\(k\)会向\(k\)所在的节点的子树连边,注意不包括\(k\)自己的节点。
那么自己节点怎么办呢?把在这里的所有串拆开然后按长度排一下序即可。
然后就是用虚点优化,随便搞就好了。
这省选题好像也不难
代码先咕着,下午再写。
代码
咕咕咕。