第一行包含 3 个非负整数 n, m, k,分别表示单词数量、纸带长度和最多按错次数。
接下来 n 行,每行为一个字符串 Si和正整数 Ai,由空格隔开,描述一个单词及其得分。
n ≤ 100, m ≤ 109,∑|Si| ≤ 500, Ai ≤1000, k ≤ 5
2 4 1
w 1
ha 9
9
//首先,展示一种错误的思路如下:
“共 4 种情况,即第 1 位按错、第 2 位按错、第 3 位按错和第 4 位按错。
1、第 1 位按错(不妨假设按成 ’x’,下同),最高得分为 ’xwha’,得分为 10。
2、第 2 位按错,最高得分为 ’wxha’,同样为 10 分。
3、第 3 位按错,最高得分为 ’haxw’,同样为 10 分。
4、第 4 位按错,最高得分为 ’hawx’,同样为 10 分。
综上,最坏情况下最高得分为 10 分。”
这种思路的错误之处在于,你不能根据哪一位按错决定你第一位按哪个键。 换种说法,
你在哪一位按错,是在按下那个按键之后才能知道的事情。 正确的思路如下:
1、第 1 位先按 ’h’,倘若按对, goto 2,倘若按错, goto 4;
2、 第 2 位按 ’a’,倘若按对, goto 3,倘若按错, goto 5;
3、 第 3 位和第 4 位都按 ’w’, 结束。 至多错 1 次,最终纸带为 ’hawx’ 或 ’haxw’,
得分为 10 分。
4、后面三位依次按 ’haw’, 结束。 因为不会再错, 最终纸带为’xhaw’,得分为 10 分。
5、后面两位依次按 ’ha’, 结束。因为不会再错, 最终纸带为’hxha’,得分为 9 分。
综上,最坏情况下,最高得分为 9 分