RT,在 LOJ 上的最短解基本都是此类做法。具体地:跑一遍 DFS 序,然后对每个城市,向除 DFS 序最小的城镇以外的其他城镇父亲结点对应的城市在新图上连边,最后求新图的强连通分量并得到出度为 0 的分量最小大小减 1 即可。
然而这种方法显然是错的,正确的做法是每个城市向其城镇之间经过的所有城镇对应的城市进行连边,而上述方法并没有连所有的城市,因此导致错误。
Hack 数据容易构造。如下两组:
输入:
6 3
1 2
2 3
3 4
4 5
4 6
1 2 3 1 2 3
正确输出:
2
错误输出:
1
和
输入:
8 4
1 2
2 3
3 4
4 5
5 6
6 7
7 8
1 2 3 1 4 2 3 4
正确输出:
3
错误输出:
2