给定有向图 G=(V,E) G = (V, E) G=(V,E)。设 P P P 是 G G G 的一个简单路(顶点不相交)的集合。如果 V V V 中每个顶点恰好在 P P P 的一条路上,则称 P P P 是 G G G 的一个路径覆盖。P P P 中路径可以从 V V V 的任何一个顶点开始,长度也是任意的,特别地,可以为 0 0 0。G G G 的最小路径覆盖是 G G G 的所含路径条数最少的路径覆盖。
设计一个有效算法求一个有向无环图 G G G 的最小路径覆盖。
第 1 1 1 行有 2 2 2 个正整数 n n n 和 m m m。n n n 是给定有向无环图 G G G 的顶点数,m m m 是 G G G 的边数。
接下来的 m m m 行,每行有 2 2 2 个正整数 u u u 和 v v v,表示一条有向边 (i,j) (i, j) (i,j)。
从第 1 1 1 行开始,每行输出一条路径。
文件的最后一行是最少路径数。
11 12 1 2 1 3 1 4 2 5 3 6 4 7 5 8 6 9 7 10 8 11 9 11 10 11
· \n · \n · \n · \n · \n · \n · \n · \n · \n · \n · \n · \n · \n
1 4 7 10 11 2 5 8 3 6 9 3
· · · · \n · · \n · · \n \n
1≤n≤200,1≤m≤6000 1 \leq n \leq 200, 1 \leq m \leq 6000 1≤n≤200,1≤m≤6000