在这里放一题看谁会(会的话发一下思路—+完整代码)

关灯

题目描述

某学校一共有n个教室(n<=40),每天晚上下课前,所有教室的灯都是开着的。下课后,卫老师必须把把所有的灯关掉。为了省事,卫老师委托lester增加一些联动线路,这样他一次就能同时关闭多个教室的电灯。但是lester有点喝多了,导致联动线路形成了一团糟。lester共增加m条线路,每条线路连接两个教室u,v,连接是双向的。当卫老师扳动某个教室开关时,该教室及所有与其直接连接的所有教室的灯都会发生变化(原来打开的被关闭,原来关闭的被打开)。现在卫老师想知道他最少需要操作几次可使所有教室都处于关灯状态

输入输出格式

输入格式

第一行两个正整数n,m(n<=40,m<=500) 后面m行每行两个正整数u,v(<=n),注意可能有自环或重边(不影响结果)

输出格式

如果没有办法达到目的,输出-1,否则输出一个正整数,表示至少需要操作几次

输入输出样例

输入样例#1:复 制

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

输出样例#1:复 制

3

输入样例#2:

输出样例#2:

输入样例#3:

输出样例#3:

说明

样例说明

如图所示,操作为节点1,4,5(方案可能不唯一),可以证明操作次数不能再少

3 个赞