Lights Out
Background
著名“人形自走炮”伊藤诚同学由于在学校里没有处理好他的人际关系,导致他的同桌西园寺世界黑化了。现在西园寺正拿着一把杀猪刀追赶伊藤诚,伊藤诚 的逃跑路线经过n个每个都有着5 * 6个灯的房间,他需要将每个房间的灯都关掉 ,才能在黑暗的掩护下躲过一劫。这时候聪明的你正好路过,伊藤诚抱住你的大腿向你求救。当然,假如你了解伊藤诚并且十分痛恨他的行为,你也可以故意提交一个TLE或者WA的程序,好让西园寺能够追上他。
Description
一个长方形的房间里共有5行6列共三十盏灯,每盏灯分别用0表示关闭状态、1表示开启状态。每个灯上有一个按钮,点击该按钮可以使得该灯及其上、下、左、右共5盏灯同时改变状态(0变成1、1变成0)。若按钮所在的灯出于房间的边上则只改变四盏灯的状态,若处于角上,则只改变3盏灯的状态,具体例子如图
由于每盏灯有多个相邻的灯,这多个相邻的灯的开关行为会叠加(比如上下两盏灯都点击了开关,则中间的灯状态不发生改变)具体例子可以参考图中第二行的第3和第4盏灯。
任务要求依次将n个房间里的30盏灯从随机的初始状态(每盏灯可能是开或者关)通过点击部分灯的按钮,使得30盏灯全部变成关闭状态(即全为0),输出每个房间的按钮的点击方法。
Format
Input
首先输入一个整数n(0<n<=20),表示有n个房间需要关灯。然后是n个房间的初始状态,每个房间由5行6列共30个数字(0或者1)组成,表示30盏灯。0表示关闭状态,1表示开启状态。
Output
对于每个房间,第一行输出字符串“PUZZLE #m”,m为当前的房间序号(m=1,2...n),然后输出房间按钮的点击方案,方案的形式和房间里的灯一样,由5行6列共30个数字(0或者1)组成,其中1表示点击该位置的灯上的按钮(按钮功能已在Description中描述),0表示不点击按钮。
Sample 1
Input
2
1 1 0 0 1 0
1 0 0 1 1 1
0 0 0 0 1 0
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
1 1 0 0 0 0
1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Output
PUZZLE #1
1 0 0 0 0 0
0 0 0 0 1 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
PUZZLE #2
0 0 0 0 0 0
1 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Hint
1.按钮点击的先后顺序对解题没有影响;
2.如果点击同一个按钮两次,则对周围及自身没有产生任何影响,因此每个按钮至多点击一次。
Source
POJ 1222
信息
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 9
- 已通过
- 2
- 通过率
- 22%
- 上传者