题目名称 4466. 终将成为你
输入输出 become.in/out
难度等级
时间限制 2000 ms (2 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatar 于2026-08-27加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:2, 提交:5, 通过率:40%
Gravatar 100 0.497 s 62.79 MiB C++
Gravatar赵飞羽 100 1.056 s 132.26 MiB C++
Gravatar郑霁桓 30 0.938 s 8.59 MiB C++
Gravatar郑霁桓 30 0.990 s 8.62 MiB C++
Gravatar郑霁桓 0 1.007 s 8.58 MiB C++
本题关联比赛
2026.8.28
关于 终将成为你 的近10条评论(全部评论)

4466. 终将成为你

★   输入文件:become.in   输出文件:become.out   简单对比
时间限制:2 s   内存限制:512 MiB

【题目背景】

侑世界第一可爱。

侑世界第一温柔。

侑是天使。

侑世界第一可爱。

侑世界第一温柔。

侑是天使。


【题目描述】

给了灯子一个长度为 $N$ 的字符串 $S$,灯子的目标是将其中的 `e` 全部删除,而不删除其他字符。最开始标记指向第一个字符处。

灯子使用 `Vim` 来解决这个问题。

然而,灯子并不熟悉 `Vim`,她只知道这里面的三个指令:

- `x`:删除标记指向的字符,标记位置不变(指向的字符变为所删除的字符的下一位),不可以在最后的字符处使用这个命令。

- `h`:将标记向左移动一格,如果标记指向第一个位置,则标记不动。

- `f c`:其中 $c$ 可以指定为除 'e' 外的任意字符,其会将标记移至标记右边(不包含标记)的第一个字符 $c$,$c\not =$ `e`。

如 $S$ 为 'abcdeb',最开始标记指向 'a',使用 `x` 操作则 'a' 删除,标记位置不变,$S$ 变为 'bcdeb',标记指向第一个 'b';接着使用 `f` 操作,将 $c$ 指定为 'b',则 $S$ 仍然为 'bcdeb',标记指向最后一个 'b';使用 `h` 操作标记指向 'e',此时可以使用 `x` 操作删除 'e',$S$ 变为 'bcdb',标记指向最后一个 'b'。

侑想让灯子计算将其中的 `e` 全部删除,而不删除其他字符的最小按键数,请你帮帮灯子。

【输入格式】

第一行为一个整数 $N$。

接下来一行一个字符串 $S$。

【输出格式】

仅一行一个整数,表示将其中的 `e` 全部删除,而不删除其他字符的最小**按键**数。

【样例输入】

35
chefeddiefedjeffeachbigagedegghehad

【样例输出】

36

【样例说明】

`fdhxhhxffhxfahxhhhxhhhxfdhxfghxfahhx` 为最优解。

【数据规模与约定】

- 对于 $50$ 分的数据,保证 $N\le 500$。

- 对于另外 $10$ 分的数据,保证 $N\le 5\times 10^3$。

- 对于 $100\%$ 的数据,保证 $1\le N\le 7\times 10^4$,$S_i\in\{$ `a` $\sim$ `j` $\}$,$S_1,S_N\not=$ `e`。

大样例