编程题
### 问题描述 有两个打字机,每个打字机有一个字符串。对于每个打字机,你可以执行两种操作: 1. 输入字母:选择 `a` 到 `z` 中的任意一个小写字母,并将其添加到当前打字机的字符串的末尾。 2. 删除字母:删除当前打字机的字符串末尾的字符。只有当前打字机的字符串不为空时才可以执行此操作。 现在有 $n$ 个目标字符串,你需要操作两个打字机,使得在整个操作过程中,对于每一个目标字符串,都存在某一个时刻两个打字机中至少有一个打字机的字符串与这个目标字符串完全相同。求对两个打字机操作次数之和的最小值。 ### 输入格式 输入第一行包含一个整数 $n$,表示目标字符串的总数。 接下来 $n$ 行,每行一个只包含小写字母的字符串,表示每一个目标字符串。 ### 输出格式 输出一个整数,表示对两个打字机操作次数之和的最小值。 ### 样例输入 ```text 3 cat far car ``` ### 样例输出 ```text 8 ``` ### 说明 一种可能的操作方案为: 1. 在第一个打字机输入字母 `c`。此时两个打字机的字符串分别为 `c` 和空字符串。 2. 在第一个打字机输入字母 `a`。此时两个打字机的字符串分别为 `ca` 和空字符串。 3. 在第二个打字机输入字母 `f`。此时两个打字机的字符串分别为 `ca` 和 `f`。 4. 在第一个打字机输入字母 `t`。此时两个打字机的字符串分别为 `cat` 和空字符串。目标字符串 `cat` 在此时与第一个打字机的字符串完全相同。 5. 在第二个打字机输入字母 `a`。此时两个打字机的字符串分别为 `cat` 和 `fa`。 6. 在第一个打字机删除字母。此时两个打字机的字符串分别为 `ca` 和 `fa`。 7. 在第一个打字机输入字母 `r`。此时两个打字机的字符串分别为 `car` 和 `fa`。目标字符串 `car` 在此时与第一个打字机的字符串完全相同。 8. 在第二个打字机输入字母 `r`。此时两个打字机的字符串分别为 `car` 和 `far`。目标字符串 `far` 在此时与第一个打字机的字符串完全相同。 此时,对于每一个目标字符串,都存在某一个时刻两个打字机中至少有一个打字机的字符串与这个目标字符串完全相同,满足要求。对两个打字机操作的总次数之和为 $8$。可以证明不存在使操作的总次数之和更小的操作方式。 ### 评测数据规模 对于 $20$% 的评测数据,$1\leq n \leq 20$。 对于 $100$% 的评测数据,$1\leq n \leq 2\times 10^5$,保证所有目标字符串互不相同,且长度之和不超过 $10^6$。
查看答案
赣ICP备20007335号-2