首页 > 试题广场 >

图的遍历

[编程题]图的遍历
  • 热度指数:10 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

sun最近为了应付考试,正在复习图论,他现在学到了图的遍历,觉得太简单了,于是他想到了一个更加复杂的问题:

无向图有n个点,从点1开始遍历,但是规定:按照每次“走两步”的方式来遍历整个图。可以发现按照每次走两步的方法,不一定能够遍历整个图,所以现在小sun想问你,最少加几条边,可以完整的遍历整个图。


输入描述:
第一行两个整数n,m代表图的点数和边数。

接下来m行,每行两个整数u,v代表u,v有边相连(无向边)


输出描述:
输出一行,代表最少要添加的边数。
示例1

输入

5 4
1 2
2 3
3 4
4 5

输出

1
示例2

输入

5 5
1 2
2 3
3 4
4 5
1 5

输出

0

备注:
数据范围:


图中点的编号从1到n。

走两步的意思:
比如现在有两条边:(1,2),(2,3),从1开始走,只能走到1或者3。
(1->2->3),(1->2->1)

这道题你会答吗?花几分钟告诉大家答案吧!