1714: 世界名画陈列馆问题

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:0

题目描述

世界名画陈列馆由m′ n个排列成矩形阵列的陈列室组成。为了防止名画被盗,需要在陈列室中设置警卫机器人哨位。每个警卫机器人除了监视它所在的陈列室外,还可以监视与它所在的陈列室相邻的上、下、左、右4 个陈列室。试设计一个安排警卫机器人哨位的算法,使得名画陈列馆中每一个陈列室都在警卫机器人的监视之下,并且要求每一个陈列室仅受一个警卫机器人监视,且所用的警卫机器人数最少。 编程任务: 设计一个算法,计算警卫机器人的最佳哨位安排,使得名画陈列馆中每一个陈列室都仅 受一个警卫机器人监视。且所用的警卫机器人数最少。

输入

第一行有2 个正整数m和n (1≤m,n≤20)。

输出

将计算出的警卫机器人数及其最佳哨位安排输出。文件的第一行是警卫机器人数; 接下来的m行中每行n个数,0 表示无哨位,1表示哨位。如果不存在满足要 求的哨位安排则输出’No Solution!’。

样例输入 复制

4 4

样例输出 复制

4
0 0 1 0
1 0 0 0
0 0 0 1
0 1 0 0