题目描述
题目描述
有一个 行 列的房间网格,房间坐标为 ,其中 位于左上角。
每个房间的上、右、下、左四面墙上可能有门。用整数 表示房间 的门:
| 方向 | 上 | 右 | 下 | 左 |
|---|---|---|---|---|
| 对应数值 |
等于该房间所有门对应数值之和。例如, 表示这个房间有右门和下门。
两个相邻房间之间可以通行,当且仅当它们在相接的两面墙上都有门。网格边界上的门通向网格外。
巡检车从网格上方经过 的上门进入房间 。每当它从一扇门进入一个房间后,可以选择另一扇门离开,但不能立即从刚刚进入的门原路离开。若选择的门通向相邻房间,还需要两个房间在相接处都有门;巡检车随后从相邻房间的对应门进入。若选择的门通向网格外,本次路线立即结束。
巡检车可以多次进入同一个房间,也可以多次经过同一扇门。一条路线必须包含有限次移动。
当且仅当路线最终从房间 的下门离开网格时,这条路线是成功路线。从其他边界门离开,或者在房间内无法继续移动,都不算成功。
如果至少存在一条成功路线经过房间 ,则称这个房间是可巡检的。
请判断每个房间是否可巡检。
输入格式
从文件 duct.in 中读取数据。
第一行包含两个整数 。
接下来 行,每行包含 个整数。第 行的第 个整数为 。
输出格式
输出到文件 duct.out 中。
输出 行,每行一个长度为 的字符串。
第 行第 个字符应为:
- 若房间 可巡检,输出字符
1; - 否则输出字符
0。
2 2
7 12
3 5
11
01
1 1
5
1
样例解释
样例 #1 中存在如下成功路线:
- 从上方进入 ,再从右门进入 ;
- 从 的下门进入 ;
- 从 的下门离开网格。
若路线经过 ,巡检车只能从它的上门进入。此时不能立即从上门返回,而它的右门与 的左墙不连通,因此不存在经过 的成功路线。
样例 #2 中,巡检车从唯一房间的上门进入,再从下门离开。
数据规模与约定
对于所有数据,保证:
- ;
- ;
- 对于 ,有 ;
- 表示的门中包含上门;
- 表示的门中包含下门。
本题采用子任务捆绑计分。只有通过某个子任务内的所有测试点,才能获得该子任务的分数。各子任务独立计分。
| 子任务编号 | 分值 | 额外约束 |
|---|---|---|
| 每个房间至多有 扇门 | ||
| 无特殊限制 |