问题 5383 --一指禅

5383: 一指禅

时间限制: 2 Sec  内存限制: 256 MB
提交: 7  解决: 5
[提交][状态][命题人:]

题目描述

一指禅是一种传说中的打字技巧,只能用一根手指进行打字,从而大幅提升打字时间。

现在有一篇英文文章需要打字输入,其可以认为是包含前 m 个小写拉丁字母的长度为 n 的字符串。

你需要设计一个键盘,能够使得一指禅打字法可以最快的打出这篇文章。
键盘可以视为包含前 m 个小写拉丁字母的一行的某种排列组合。例如 m=3 时,键盘可以为 abc,acb,bac,bca,cab,cba 中的一种。

因为只能用一根手指打字,因此将手指从键盘上一个按键移动到另一个按键需要花费一定时间,其等于两者间的距离。
假设一开始手指在第一个字符所对应的按键上。打字总时间,等于总的移动时间
例如字符串为 aacabc 时,当键盘为 bac 时,所需时间为 0+1+1+1+2=5

求任选一种键盘的情况下的最少打字时间。

输入

输入第一行包含两个整数 n,m (1≤n≤10^5, 1≤m≤20) 。
第二行包含一个长度为 n 仅由前 m 个小写拉丁字构成的字符串,表示需要打字的文章。

输出

输出一个整数,表示最少打字时间。

样例输入
Copy
样例输入 1
6 3
aacabc

样例输入 2
6 4
aaaaaa

样例输入 3
15 4
abacabadabacaba
样例输出
Copy
样例输出 1
5

样例输出 2
0

样例输出 3
16

提示

来源

[提交][状态]