ARC141F Well-defined Abbreviation 题解

ARC141F Well-defined Abbreviation 题解

考虑什么时候回存在不同的操作序列导致得到不同的字符串?

必然存在一个时刻满足能消掉两个相交的子串。

也就是说如果存在两个字符串\(s_i,s_j\),对应子串\([l_1,r_1],[l_2,r_2]\),且\(l2\in[l1,r2],r1\in [l2,r2]\),或者\([l1,r1]\subset[l2,r2]\)或者\([l2,r2]\subset[l1,r1]\)

同时除去相交的部分,剩下的部分不同。

但是如果剩下的部分都可以通过一些删除子串的部分删掉,就任然是好的。

可以得到最后的结论:

对于一个串\(s_i\),如果\(s_i\)可以通过若干次操作变成空,则不考虑。(操作顺序不重要,因为假定\(s_i\)是好的)

对于其他的串必须满足两两除去交后相同。

这两个部分都可以通过ac自动机完成,时间复杂度\(O(\sum|s_i|)\)

posted @ 2022-05-30 19:32  WWW~~~  阅读(97)  评论(0编辑  收藏  举报