【题目链接】
【思路要点】
- 枚举回文中心向外搜索,可以得到一个 O ( N 2 + M 2 ) O(N^2+M^2) O(N2+M2) 的 B F S BFS BFS 做法。
- 将边分为两类,一类为同色边,一类为异色边,显然每一步,向外搜索的两个方向 ( x , y ) (x,y) (x,y) 经过的边应当类型相同。
- 注意到仅在某一类边上搜索时,我们可以采取如下策略:令 x x x 向目标前进, y y y 在相邻的两个点上来回走动。那么,当 x x x 到达目标时, y y y 可能在原来的位置,也可能移动了一步。
- 因此,对于一个某一类边组成的联通块,我们关心的仅仅是其连通性,以及其中是否存在奇环。因此,我们可以删除一些边,仅仅保留一棵生成树,和任意一条会形成奇环的非树边就可以保证答案不变。
- 至多剩余 2 N 2N 2N 条边,可以直接运用上述 B F S BFS BFS 搜索。
- 时间复杂度 O ( N 2 + M ) O(N^2+M) O(N2+