[Usaco2009 Nov]lights 燈
贝希和朋友们正在牛棚中玩游戏,突然牛棚的电源跳闸,所有灯都熄灭了。贝希希望你帮助她重新打开所有的灯。
牛棚中共有 盏灯,编号为 到 。这些灯之间由 条无向边连接,形成一个网络。
每盏灯都有一个开关。按下某盏灯的开关时,这盏灯以及所有与它通过一条边直接相连的灯都会改变状态:原本亮着的灯会熄灭,原本熄灭的灯会亮起。
请计算最少需要按下多少个开关,才能使所有灯都亮起。数据保证至少存在一种可行方案。
输入格式
第一行包含两个由空格分隔的整数 和 ,分别表示灯的数量和无向边的数量。
接下来 行,每行包含两个由空格分隔的整数,表示对应的两盏灯之间有一条无向边。
输入中不会重复出现同一条边。
输出格式
输出一个整数,表示使所有灯都亮起最少需要按下的开关数量。
样例输入
5 6
1 2
1 3
4 2
3 4
2 5
5 3
样例输出
3
样例解释
共有 盏灯,其中灯 、灯 和灯 都与灯 、灯 相连。
按下灯 、灯 和灯 上的开关,即可使所有灯亮起,最少需要按下 个开关。
数据范围
- ;
- ;
- 输入中不存在重复的边;
- 数据保证至少存在一种使所有灯都亮起的方案。
来源与许可
本题为 USACO 2009 November 试题「Lights 灯」,题面与测试数据整理自 BZOJ。
样例 1
输入
5 6
1 2
1 3
4 2
3 4
2 5
5 3
输出
3