貌似还挺经典的一个问题
显然我们要单独考虑每个连通块,结论是答案为,其中 m 为边数。寻找答案的算法如下:
跑一遍 dfs 得到 dfs 生成树,然后从下往上处理边:将与当前节点相连的边两两配对,如果边数是奇数就留下与父亲节点相连的那条边给父亲节点。这样就可以保证所有边都被覆盖了。
代码:
练习题:
貌似还挺经典的一个问题
显然我们要单独考虑每个连通块,结论是答案为,其中 m 为边数。寻找答案的算法如下:
跑一遍 dfs 得到 dfs 生成树,然后从下往上处理边:将与当前节点相连的边两两配对,如果边数是奇数就留下与父亲节点相连的那条边给父亲节点。这样就可以保证所有边都被覆盖了。
代码:
练习题: