题意:
Ant Tony和他的朋友们想游览蚂蚁国各地。
给你蚂蚁国的N个点和M条边,现在问你至少要几笔才能所有边都画一遍.(一笔画的时候笔不离开纸) 保证这M条边都不同且不会存在同一点的自环边. 也就是蚂蚁分组遍历整个无向图,他们试图把所有的人分成几个小组,每个小组可以从不同的城镇开始。 Tony想知道最少需要几组。 Input输入包含多组测试用例,由多个空行分隔。
每个测试用例的第一行是两个整数N(1<=N<=100000)、M(0<=M<=200000),表明蚂蚁国有N个城镇和M条道路。
在M条线路之后,每条线路包含两个整数u,v,(1<=u,v<=N,表示有一条道路连接城镇u和城镇v。
Output对于每个测试用例,输出需要形成的最少组数来实现它们的目标。Sample Input
3 31 22 31 34 21 23 4
Sample Output
12 解析: 题中没有保证所有的点都是一个连通块,所以对于每个连通块,都有三种情况 1、当前连通块每个点的度数都为偶数,即为欧拉回路 所以一笔就行 2、有 x 个奇点,已知每两个奇点可以组成一条欧拉路径,所以 笔画数 = x / 2; 3、 单个点成为连通块 那么0笔 用并查集维护连通块就好了
#include #include #include #include #include