CF62B.Tyndex.Brome
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Tyndex is again well ahead of the rivals! The reaction to the release of Zoozle Chrome browser was the release of a new browser Tyndex.Brome!
The popularity of the new browser is growing daily. And the secret is not even the Tyndex.Bar installed (the Tyndex.Bar automatically fills the glass with the finest 1664 cognac after you buy Tyndex.Bottles and insert in into a USB port). It is highly popular due to the well-thought interaction with the user.
Let us take, for example, the system of automatic address correction. Have you entered codehorses instead of codeforces? The gloomy Zoozle Chrome will sadly say that the address does not exist. Tyndex.Brome at the same time will automatically find the closest address and sent you there. That's brilliant!
How does this splendid function work? That's simple! For each potential address a function of the F error is calculated by the following rules:
- for every letter c__i from the potential address c the closest position j of the letter c__i in the address (s) entered by the user is found. The absolute difference |i - j| of these positions is added to F. So for every i (1 ≤ i ≤ |c|) the position j is chosen such, that c__i = s__j, and |i - j| is minimal possible.
- if no such letter c__i exists in the address entered by the user, then the length of the potential address |c| is added to F.
After the values of the error function have been calculated for all the potential addresses the most suitable one is found.
To understand the special features of the above described method better, it is recommended to realize the algorithm of calculating the F function for an address given by the user and some set of potential addresses. Good luck!
Tyndex 再次大幅领先于竞争对手!在 Zoozle Chrome 浏览器发布后,Tyndex 公司迅速推出了全新浏览器 Tyndex.Brome!
这款新浏览器的受欢迎程度与日俱增。其奥秘甚至不在于已预装的 Tyndex.Bar(Tyndex.Bar 可在您购买 Tyndex.Bottles 并将其插入 USB 接口后,自动将玻璃杯注满最上乘的 1664 年干邑白兰地)。真正使其广受青睐的,是其经过深思熟虑、极为人性化的用户交互设计。
以自动网址校正系统为例:您是否曾误将 codeforces 输入为 codehorses?阴郁的 Zoozle Chrome 浏览器只会黯然告知您“该地址不存在”。而 Tyndex.Brome 则会立即自动查找最接近的正确网址,并直接将您跳转过去——这简直太出色了!
这一惊艳功能是如何实现的呢?其实非常简单!对每个候选网址 $ c $,均按如下规则计算其误差函数 $ F $:
- 对候选网址 $ c $ 中的每个字母 $ c_i $(其中 $ i $ 满足 $ 1 \leq i \leq |c| $),在用户输入的网址 $ s $ 中找出位置 $ j $,使得 $ s_j = c_i $,且 $ |i - j| $ 尽可能小;然后将该最小绝对差值 $ |i - j| $ 累加至 $ F $;
- 若用户输入的网址 $ s $ 中根本不存在字母 $ c_i $,则将候选网址 $ c $ 的长度 $ |c| $ 加入 $ F $。
在对所有候选网址均计算出误差函数 $ F $ 的值后,即可选出 $ F $ 值最小者作为最优匹配结果。
为更深入理解上述方法的独特之处,建议您实现一个算法:给定用户输入的网址 $ s $ 和一组候选网址,计算每个候选网址对应的 $ F $ 值。祝您好运!
输入格式
The first line contains two integers n and k (1 ≤ n ≤ 105, 1 ≤ k ≤ 105). They are the number of potential addresses and the length of the address entered by the user. The next line contains k lowercase Latin letters. They are the address entered by the user (s). Each next i-th (1 ≤ i ≤ n) line contains a non-empty sequence of lowercase Latin letters. They are the potential address. It is guaranteed that the total length of all the lines does not exceed 2·105.
第一行包含两个整数 n 和 k(1 ≤ n ≤ 105,1 ≤ k ≤ 105),分别表示潜在地址的数量以及用户输入的地址长度。
第二行包含 k 个小写拉丁字母,表示用户输入的地址 s。
接下来的第 i 行(1 ≤ i ≤ n)包含一个非空的小写拉丁字母序列,表示第 i 个潜在地址。
保证所有行的总长度不超过 2⋅105。
输出格式
On each n line of the output file print a single number: the value of the error function when the current potential address is chosen.
Please, do not use %lld specificator to read or write 64-bit integers in C++. It is preffered to use cout (also you may use %I64d).
在输出文件的第 n 行上,打印一个整数:当选择当前潜在地址时,误差函数的值。
请注意,在 C++ 中读写 64 位整数时,请勿使用 %lld 格式说明符。推荐使用 cout(也可使用 %I64d)。
输入输出样例
输入#1
2 10 codeforces codeforces codehorses
输出#1
0 12
输入#2
9 9 vkontakte vcontacte vkontrakte vkollapse vkrokodile vtopke vkapuste vpechke vk vcodeforcese
输出#2
18 14 36 47 14 29 30 0 84
输入解题思路,AI测评打分。不知道怎么写?