最新消息:码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。

信息学奥赛题库- 最小操作次数

C++ 少儿编程 1654浏览 0评论

码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。

【题目描述】

有一个$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$。

您必须 登录 才能发表评论!