[CEOI2002] Royal guards

题目描述

从前有一个王国,这个王国的城堡是 mm 行 nn 列的一个矩形,被分为 m \times nm×n 个方格。一些方格是墙,而另一些是空地。这个王国的国王在城堡里设了一些陷阱,每个陷阱占据一块空地。

一天,国王决定在城堡里布置守卫,他希望安排尽量多的守卫。

守卫们都是经过严格训练的,所以一旦他们发现同行或同列中有人的话,他们立即向那人射击。因此,国王希望能够合理地布置守卫,使他们互相之间不能看见,这样他们就不可能互相射击了。守卫们只能被布置在空地上,不能被布置在陷阱或墙上,且一块空地只能布置一个守卫。如果两个守卫在同一行或同一列,并且他们之间没有墙的话,他们就能互相看见。(守卫就像象棋里的车一样)

你的任务是写一个程序,根据给定的城堡,计算最多可布置多少个守卫,并设计出布置的方案。

输入格式

第一行有两个整数 mm 和 nn,表示城堡的规模。

第 22 到第 (m + 1)(m+1) 行,每行 nn 个整数,第 (i +1)(i+1) 行第 jj 列的数 a_{i, j}ai,j​ 表示城堡第 ii 行第 jj 列的方格的信息,其中 00 表示空地,11 表示陷阱,22 表示墙。

输出格式

本题存在 Special Judge

首先输出一行一个整数 kk,表示最多可布置的守卫个数。

然后输出 kk 行,每行两个整数 x, yx,y,表示在第 xx 行第 jj 列放一个守卫。

输入输出样例

输入 #1复制

3 4
2 0 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值