#N0311. 水迷宫【NOIP2023模拟赛T2】
水迷宫【NOIP2023模拟赛T2】
题目描述
水能自己找到迷宫出口吗?这是一个有趣的实验。
既然能用实验的形式模拟,就也能以程序的形式模拟。
给你一个的迷宫,我们定义每个格子可能在上下左右四个方向有挡板。保证所给的迷宫,将每一个格子当点提取出来以后,恰好构成了一棵树(跟起点不连通的点不在考虑范围)。迷宫的入口一定在整个迷宫的顶端,出口一定在整个迷宫的底端。
我们假设把这个迷宫放在真空(没有气压)且有重力的环境中,从时刻开始,以非常缓慢的速度从迷宫的正上方开始滴水,那么持续的滴水将逐渐在迷宫中行走,直到某一刻开始,从迷宫的出口流出去。
现在,我们的问题是:在无穷久以后,哪些坐标的格子曾经有水流经过,以及,哪些坐标的格子,此时已经充满了水。
输入格式
第一行输入三个数字,表示迷宫的大小,表示迷宫上方的入口是第几列,表示迷宫下方的出口是第几列。
接下来行,每行个数字,要么是要么是,表示第行第列的格子,上方有没有挡板。
接下来一个空行(主要是看起来方便)。
接下来行,每行个数字,要么是要么是,表示第行第列的格子,左方有没有挡板。
输出格式
输出一个的矩阵,每个位置输出三种数字之一,代表没有水经过,代表有水经过,但是没有蓄水,代表蓄满了水。
输出格式
输出个正整数表示答案。
样例输入 #1
4 1 1
0 1 1 1
0 0 0 0
1 1 1 0
0 0 0 0
1 1 0 0
1 0 1 1
1 1 0 0
1 0 1 1
样例输出 #1
1 1 1 1
2 2 2 1
0 1 1 1
1 1 2 2
样例解释 #1
样例输入 #2
10 6 5
1 1 1 1 1 0 1 1 1 1
0 0 0 1 0 1 1 0 0 1
0 0 1 0 1 0 1 0 1 0
1 1 0 1 0 0 0 1 0 0
0 1 0 0 0 0 1 1 1 0
0 0 1 1 1 1 0 0 0 1
0 0 0 0 1 0 0 1 1 0
1 1 0 1 0 1 0 0 1 0
0 1 1 0 0 0 1 1 1 0
1 0 0 1 0 1 0 0 1 0
1 1 0 0 1 0 1 0 1 0
1 1 1 1 0 1 0 0 1 0
1 0 0 0 0 1 1 0 1 0
1 0 0 1 1 1 1 0 0 1
1 0 1 0 1 0 1 0 1 0
1 1 1 1 0 0 1 1 0 1
1 1 1 1 0 1 0 1 0 1
1 0 0 1 0 1 1 0 0 0
1 0 1 0 1 1 0 1 0 0
1 0 0 0 1 0 1 0 1 0
样例输出 #2
0 0 0 0 1 1 0 0 0 0
1 1 0 1 1 1 1 1 0 0
2 2 2 2 2 2 1 1 1 1
2 2 2 2 2 2 2 2 2 1
2 2 2 2 2 2 1 1 1 1
2 2 0 1 1 1 1 2 2 1
2 2 0 1 1 2 2 2 2 2
0 0 0 0 1 2 2 2 2 2
0 0 0 0 1 2 2 2 2 2
0 0 0 0 1 0 2 2 2 2
样例解释 #2
需要注意的是,坐标也会有一滴水。
样例输入 #3
6 1 1
0 1 1 1 1 1
0 0 0 0 0 0
1 1 0 1 0 1
0 1 1 0 0 0
1 0 0 0 1 0
0 1 0 0 0 0
1 1 0 1 0 0
1 0 1 1 1 1
1 0 0 0 1 0
1 0 1 1 0 1
1 0 1 1 1 1
1 0 1 0 0 1
样例输出 #3
1 1 1 0 0 0
2 2 1 0 0 0
1 1 1 1 1 1
1 1 2 2 2 2
1 1 2 2 2 2
1 0 2 2 2 2
样例解释 #3
数据范围
对于30%的数据:。
对于编号为奇数的测试点:保证水流在任意时刻都不会向上流。
对于100%的数据:。
评分方式
如果答案中该输出的部分你输出了,该输出或的部分你输出了或者(无论是否正确),则你可以得到这个点的分数。
如果你的输出完全正确,则你可以得到这个点的分数。