编程题

1704:奇特的猫


时间限制: 1000 ms         内存限制: 262144 KB
提交数:108    通过数: 15

【题目描述】

你有一只奇特的猫。有一天,你将它放到电脑前,你惊奇地发现,它竟然会对着键盘乱敲一顿。你的键盘是老式的打字机型,也就是说光标永远在串尾。当然,小猫可以通过退格键删除字符,现在,你按时间顺序记录下了这只小猫三天中每一天的操作情况,你对小猫每天在不同时刻屏幕上显示的所有字符串(包括空串)所组成的集合起了兴趣。这里一共有三天,一共产生了三个集合,分别记为$A,B,C$。

第一天,你定义两个串的编辑距离为从一个串$P$变为另一个串$Q$最小的按键次数(应当符合上面的规定),我们将这个编辑过程记为$P → Q$ 。

第二天,你定义字符串的“变换编辑”,表示选取集合$A$中的唯一一个特殊串$A_0$和集合$B$中的唯一一个特殊字符串$B_0$,令$A_0$到$B_0$的编辑距离为$1$,即$A_0 → B_0$ 这一过程我们看做产生了$1$单位的编辑距离。

那么在集合$A$和集合$B$各选出一个字符串,分别为$P$和$Q$,那么$P$到$Q$的编辑过程应是$P → A_0 → B_0 → Q$,总的编辑距离即为每个阶段的编辑过程产生的距离之和。这里$A_0$和$B_0$是可以任意选取的,但是计算一种答案时$A_0$和$B_0$是固定的。

同一个集合中的字符串的编辑距离的计算方式不变。

第三天,你需要在集合$A$中选取一个特殊串$A_0$,在集合$B$中选取两个特殊串$B_0$和$B_1$($B_0$和$B_1$可以相同),在集合$C$中选取一个特殊串$C_0$。

我们使用“变换编辑”,令$A_0  → B_0$的距离为$1$,$B_1 → C_0$ 的距离为$1$。

我们如果在集合$A$选出字符串$P$,在集合$B$选出字符串$Q$,它们的编辑过程仍为 $P → A_0 → B_0 → Q$。

对于集合$B$和集合$C$的字符串$P$和$Q$,编辑过程为$P → B_1 → C_0 → Q$ 。

对于集合$A$和集合$C$的字符串$P$和$Q$,编辑过程为 $P → A_0 → B_0 → B_1 → C_0 → Q$。

第一天计算的结果是固定的,但后两天计算的结果取决于你标记的特殊串。希望求出通过不同的标记方案的计算结果的最小值和最大值。

注意三次计算是独立的。

【输入】

输入分三组,依次表示三天小猫的按键。

每组数据仅一行,依次为按键字符 $ASCII$ 值。

退格键的 $ASCII$值是 $8$。

【输出】

共三行,每行两个整数,表示该天的最小值和最大值。

【输入样例】

97
97
97 8 97 8

【输出样例】

1 1
10 10
31 35

【提示】

【样例输入2】

54 8 73 70 117 118 8 8 8 8 99 8\n50 89 8 8 56 39 8 60 116 59 123 8 8 8 8 8\n45 8 51 8 61 57 8 98 8 8 90 8 105 83 8 8

【样例输出2】

52 52\n441 634\n1156 2200

【数据规模】

记$S$为三天中集合个数最多的那天的集合。

对于10%的数据,$|S|≤10$。

对于20%的数据,$|S|≤100$。

对于40%的数据,$|S|≤4000$。

对于70%的数据,$|S|≤10^5$。

对于100的数据,$|S|≤10^6$。

查看答案
赣ICP备20007335号-2