A4802 | 梦神的大平层
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
*Yuilice*最近一直在失眠,一夜未眠都是非常正常的事情,所以他去向梦神求助,希望能够通过梦神的帮助解决这个问题。
梦神给了Yuilice一个难题,让他每天睡觉前去解题从而每天都睡得香香的,但是*坏心眼的的楠楠*因为晚上打CS找不到开黑的伙伴,所以他决定解开这个难题从而让Yuilice再次失眠,彻夜在米垃圾被折磨。
现在为了保护Yuilice的好梦,你需要抢在楠楠之前解开这道谜题,打开题目之后,你惊讶的发现问题居然是梦神的大平层设计图。
现在已知梦神的大平层可以由一个$N \times M$的二维矩阵来表示,同时在矩阵的每一个格子当中,都会有一个数字$a_{i,j}(1 \leq a_{i,j} \leq 15)$,代表在该格当中哪个方向有着墙壁(每个格子都有自身的四面墙壁)。
例如数字
梦神给了Yuilice一个难题,让他每天睡觉前去解题从而每天都睡得香香的,但是*坏心眼的的楠楠*因为晚上打CS找不到开黑的伙伴,所以他决定解开这个难题从而让Yuilice再次失眠,彻夜在米垃圾被折磨。
现在为了保护Yuilice的好梦,你需要抢在楠楠之前解开这道谜题,打开题目之后,你惊讶的发现问题居然是梦神的大平层设计图。
现在已知梦神的大平层可以由一个$N \times M$的二维矩阵来表示,同时在矩阵的每一个格子当中,都会有一个数字$a_{i,j}(1 \leq a_{i,j} \leq 15)$,代表在该格当中哪个方向有着墙壁(每个格子都有自身的四面墙壁)。
例如数字
5,可以被视为是二进制的0101:- 第一个数字
0代表北面没有墙壁 - 第二个数字
1代表东面有墙壁 - 第三个数字
0代表南面没有墙壁 - 第四格数字
1代表西面有墙壁。
输入格式
第一行共会输入两个整数$N,M(1 \leq N,M \leq 10^3)$,代表大平层的二维矩阵。
随后$N$行,每行输入$M$个整数$a_{i,j}$,代表每个方格的状态。
随后$N$行,每行输入$M$个整数$a_{i,j}$,代表每个方格的状态。
输出格式
按照从大到小的顺序输出每个房间的所占方格总数,每两个数字之间用空格隔开。
输入输出样例
输入 #1
4 5 9 14 11 12 13 5 15 11 6 7 5 9 14 9 14 3 2 14 3 14
输出 #1
9 4 4 2 1
输入 #2
3 3 9 8 12 5 5 5 7 7 7
输出 #2
9
输入 #3
3 3 9 8 13 15 7 15 15 15 6
输出 #3
3 1 1 1 1 1 1
说明/提示
题目保证输入数据当中所有地图边缘都一定会有墙壁,但并不保证每个房间内部不会有墙壁存在,但是我们默认在最外围有一圈墙壁围着大平层。
注: 假如两个格子之间有一堵墙,那么两个格子就不能直接来往。
对于 $50 \%$ 的数据,$1 \le N, M \le 100$
对于 $100 \%$ 的数据,$1 \le N, M \le 10^3$
对于第三个样例,可以转化为以下的图,

其中
1,2,5 三个格子之间相互不存在墙壁,属于一个房间,其他每一个格子各算作一个房间
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?