编程题

1686:最小操作次数


时间限制: 3000 ms         内存限制: 102400 KB
提交数:445    通过数: 106

【题目描述】

有一个$n$行$m$列的矩阵,每个位置存在一个大写字母、数字、“-”或“*”(不含引号)。初始时刻,你位于矩阵的左上角。你可以执行一些操作,每次可以执行下列操作之一:

1.选择你当前所在位置的字符;

2.选择上下左右四个方向中的一个,并向该方向逐格移动,直到你当前所在位置的字符与你移动前所在位置的字符不同。如果这样做会导致移出边界,则不能移动。

你还拥有一个字符串s,你希望你选择的所有字符依次连接后,与s后面添加一个”*”所组成的字符串相同。求最小的操作次数。保证合法方案一定存在。

【输入】

第一行,两个整数$n$,$m$。

之后$n$行,每行$m$个字符表示这个矩阵。

最后一行一个字符串s表示你所有的这个字符串。

【输出】

一行一个整数表示最小操作次数。

【输入样例】

2 19
ABCDEFGHIJKLMNOPQZY
X*****************Y
AZAZ

【输出样例】

19

【提示】

【数据规模】

对于50%的数据,$1≤n,m≤20$,$1≤s$的长度$≤100$。

对于100%的数据,$1≤n,m≤50$,$1≤s$的长度$≤10000$。

查看答案
赣ICP备20007335号-2