回 帖 发 新 帖 刷新版面

主题:第32次比赛的第二题

刚来不久,又是第一次出题,问题在所难免。
如果题目描述有问题或者以前已经有类似题目了,麻烦发新贴说明。
以下是题目,比赛时间到星期六中午12点.good luck



点灯游戏
     一些手机上的游戏。开始时有n*n个灯,排成n行n列,每个灯都是熄灭的状态。而每次对一个灯进行操作,可以改变其本身和周围的灯的状态,熄的灯变亮,亮的灯变熄灭。这儿周围的意思就是如果灯的位置是(x,y),那么能影响的灯就是(x,y),(x-1,y),(x,y+1),(x+1,y),(x,y-1),当然如果相应地方有灯。
   显然对一个灯操作偶数次相当于没有操作,而操作了奇数次相当于只操作了一次。
   现在给定一个n( 1<= n <= 20),输出一个n*n的只包含0和1的方阵(0代表没有操作,1代表操作了一次),进行这样的操作后能把所有的灯点亮。如果没有解则输出"NO SOLUTION".多个解则只输出一个即可
   函数接口
   void solve(int n);
   一些例子
   n = 1时
   输出
   1
   n = 2时
   输出
   1 1
   1 1
   n = 3时,
   输出
   1 0 1
   0 1 0
   1 0 1
   到时候测试如果即使n = 20的速度都特别快,那么将多次测试,所以不建议把每个n*n的存起来。


回复列表 (共11个回复)

11 楼

时间到了

我来回复

您尚未登录,请登录后再回复。点此登录或注册