题目名称 539. 牛棚的灯
输入输出 lights.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 17
题目来源 Gravatarcqw 于2011-04-12加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:108, 提交:265, 通过率:40.75%
Gravatar可以的. 100 0.000 s 0.00 MiB C++
GravatarGo灬Fire 100 0.000 s 0.00 MiB C++
Gravatar河北交通广播992大师来了 100 0.000 s 0.00 MiB C++
GravatarHZOI_蒟蒻一只 100 0.000 s 0.00 MiB C++
GravatarHzoi_Mafia 100 0.000 s 0.00 MiB C++
GravatarBaDBoY 100 0.000 s 0.00 MiB C++
GravatarYoungsc 100 0.000 s 0.00 MiB C++
GravatarAAAAAAAAAA 100 0.000 s 0.04 MiB C++
GravatarLGLJ 100 0.002 s 0.19 MiB C++
Gravatarrewine 100 0.003 s 0.32 MiB C++
本题关联比赛
20110412pm
20120417
关于 牛棚的灯 的近10条评论(全部评论)
songbi qsy
GravatarHzoi_Ivan
2017-09-17 17:10 8楼
GravatarAnonymity
2017-09-17 16:44 7楼
自 由 元
GravatarRapiz
2017-03-22 19:24 6楼
特么不要嫌爆栈,递归时该局部变量就局部变量,否则局部覆盖整体,都不知道怎么死的
Gravatar_Itachi
2016-07-13 21:32 5楼
终于A了。。。消元不难,主要跪在了回代时的DFS上。第一次A的是抄的@feng 的dfs,第二次A的是自己写的,但为啥我写的那么慢。。。
Gravatarliu_runda
2016-03-18 18:00 4楼
这题题面、样例跟1371.开关控制完全一样,理解不了为啥1371只有一星。。。
Gravatarliu_runda
2016-03-16 10:59 3楼
Gravatarstdafx.h
2015-10-28 07:14 2楼
两个程序,运行的快的是高斯消元解异或方程组,运行的慢的是一个方法很怪的搜索
Gravatarfeng
2013-04-25 10:24 1楼

539. 牛棚的灯

★★★   输入文件:lights.in   输出文件:lights.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

贝希和她的闺密们在她们的牛棚中玩游戏。但是天不从人愿,突然,牛棚的电源跳闸了,所有的灯都被关闭了。贝希是一个很胆小的女生,在伸手不见拇指的无尽的黑暗中,她感到惊恐,痛苦与绝望。她希望您能够帮帮她,把所有的灯都给重新开起来!她才能继续快乐地跟她的闺密们继续玩游戏!

牛棚中一共有N(1 <= N <= 35)盏灯,编号为1到N。这些灯被置于一个非常复杂的网络之中。有M(1 <= M <= 595)条很神奇的无向边,每条边连接两盏灯。

每盏灯上面都带有一个开关。当按下某一盏灯的开关的时候,这盏灯本身,还有所有有边连向这盏灯的灯的状态都会被改变。状态改变指的是:当一盏灯是开着的时候,这盏灯被关掉;当一盏灯是关着的时候,这盏灯被打开。

问最少要按下多少个开关,才能把所有的灯都给重新打开。

数据保证至少有一种按开关的方案,使得所有的灯都被重新打开。

题目名称:lights

输入格式:

*第一行:两个空格隔开的整数:N和M。

*第二到第M+1行:每一行有两个由空格隔开的整数,表示两盏灯被一条无向边连接在一起。
没有一条边会出现两次。

样例输入(文件 lights.in):

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

输入细节:

一共有五盏灯。灯1、灯4和灯5都连接着灯2和灯3。

输出格式:

第一行:一个单独的整数,表示要把所有的灯都打开时,最少需要按下的开关的数目。

样例输出(文件 lights.out):

3

输出细节:

按下在灯1、灯4和灯5上面的开关。