CF62B 题解

· · 题解

题目传送门

思路

对于标准字符串,用一个 vector 数组用来储存每一个字母所出现的下标。

接下来的每一次询问,答案是每一次与 S_i 下标差值的最小值的和。

具体实现

  1. 读入,开一个 vector,标准字符串中的每一个字符的下标都相应 push_back 到对应的字符中。

  2. 对于每次询问,用循环遍历询问字符串的每一位。在该循环中,要取与 S_i 下标差值的最小值。如果一个字符没有对应的下标,就加上 S 的长度。最后将所有的最小值(其中也包括 S 的长度)加和,就是该询问的答案。

注意事项

  1. 每个测试字符串 S 都有一个独立ans,所以 ans 每次询问完要清空

  2. 不开 long long 见祖宗。另外,本题用 %lld 也能过,并不需要 %I64d