#P15951. [ICPC 2018 Jakarta R] Edit Distance

[ICPC 2018 Jakarta R] Edit Distance

题目描述

二进制字符串是由 00 和 11 组成的非空序列,例如 010110010110、11、1110111101 等。两个二进制字符串 SS 和 TT 的编辑距离,记为 edit(S,T)edit(S, T),是指通过单字符编辑操作(插入、删除或替换)将 SS 修改为 TT 所需的最少操作次数。例如,00110011 与 11001100 的编辑距离为 44,即 0011→011→11→110→11000011 \to 011 \to 11 \to 110 \to 1100。11001011100101 与 11101001110100 的编辑距离为 22,即 1100101→1110101→11101001100101 \to 1110101 \to 1110100。

阿玉有一个二进制字符串 SS。她想找一个与 SS 等长的二进制字符串,使得它与 SS 的编辑距离最大。形式化地说,她希望找到一个二进制字符串 TmaxT_{max},满足 ∣S∣=∣Tmax∣|S| = |T_{max}|,并且对于所有满足 ∣S∣=∣T′∣|S| = |T'| 的二进制字符串 T′T',都有 edit(S,Tmax)≥edit(S,T′)edit(S, T_{max}) \geq edit(S, T')。

她需要你的帮助!不过,为了降低你的任务难度,你可以返回任意一个与 SS 等长的二进制字符串 TT,只需满足 SS 与 TT 的编辑距离大于 SS 长度的一半即可。形式化地说,你必须返回一个二进制字符串 TT,满足 ∣S∣=∣T∣|S| = |T| 且 edit(S,T)>∣S∣2edit(S, T) > \frac{|S|}{2}。

当然,如果你想的话,仍然可以返回 TmaxT_{max},因为可以证明对于任意二进制字符串 SS,都有 edit(S,Tmax)>∣S∣2edit(S, T_{max}) > \frac{|S|}{2}。这也证明了对于任意二进制字符串 SS,解总是存在的。如果有多个有效解,输出任意一个即可。

输入格式

输入包含一个二进制字符串 SS(1≤∣S∣≤20001 \leq |S| \leq 2000)。

输出格式

输出一行一个与 SS 等长的二进制字符串 TT,满足 edit(S,T)>∣S∣2edit(S, T) > \frac{|S|}{2}。

0011
1100
1100101
0011010

提示

样例输入 #1 的解释

如上述示例所示,00110011 与 11001100 的编辑距离为 44。由于 4>424 > \frac{4}{2},因此 11001100 是该样例的一个有效输出。

翻译由 DeepSeek V3.2 完成