1.
红与黑
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。
时间限制:
1000
内存限制:
65536
输入
包括多个数据集合。每个数据集合的第一行是两个整数
W
和
H
,分别表示
x
方向和
y
方向瓷砖的数量。
W
和
H
都不超过
20
。在接下来的
H
行中,每行包括
W
个字符。每个字符表示一块瓷砖的颜色,规则如下
1
)
‘.’
:黑色的瓷砖;
2
)
‘#’
:白色的瓷砖;
3
)
‘@’
:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。
当在一行中读入的是两个零时,表示输入结束。
输出
对每个数据集合,分别输出一行,显示你从初始位置出发能到达的瓷砖数
(
记数时包括初始位置的瓷砖
)
。
样例输入
6 9
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
0 0
样例输出
45
2.
密室逃脱
小
Y
喜欢玩密室逃脱,每次游戏开始时,小
Y
会进入一个密室,她需要按照顺序解开各个隐藏线索才能成功逃脱密室。小
Y
非常聪明,解开线索对她来说并不难,但是她有一点懒,她希望在通关过程中移动次数最少。请你帮小
Y
计算她至少要移动多少次才能成功通关。
密室是
m
行
n
列的格子矩阵,小
Y
从左上角
(1,1)
进入密室,密室中有三种格子
:
墙,以数字
0
标记
路,以数字
1
标记
隐藏线索处,以数字
( > 1)
标记
,
代表该线索的难度
小
Y
需要按照难度递增的顺序解开各个线索,逃脱密室。
时间限制:
1000
内存限制:
65536
输入
第一行是一个整数
T
,表示输入包含
T
组数据,分别是不同的游戏中小
Y
所处的密室。
对于每组数据,第一行包括两个整数:
m
(
1 <= m <= 100
)、
n
(
1 <= n <= 100
)。
接下来
m
行,每行有
n
个数字,第
i
行的第
j
个数字表示密室中第
i
行第
j
列的格子的类型。
题目保证进入密室处
(1,1)
不是墙壁,线索的难度都不相同。
输出
对于每组数据,你需要输出一个整数,表示小
Y
在这个密室中至少要移动多少次才能成功通关。
如果小
Y
不可能解开所有线索,输出
-1.
样例输入
2
3 3
1 3 2
1 0 4
10 6 5
3 3
1 3 2
0 0 0
10 6 5
样例输出
8
-1
提示
样例解释:由于需要按难度顺序解开线索,在第一组数据中,小
Y
第一次移动到
3
时不能解密,在完成
2
之后需要回到
3.
最后小
Y
解开
10
时,她成功通关。
3.
求逆序对数
对于一个长度为
202103软件编程(C语言)真题——(5级)