QOJ.ac

QOJ

Limite de temps : 20 s Limite de mémoire : 512 MB Points totaux : 100

#850. Otra vez la distancia de edición

Statistiques

¿Alguna vez has oído hablar del problema de la distancia de edición? Dadas dos cadenas de letras minúsculas en inglés, debes determinar el número mínimo de operaciones necesarias para transformar la primera en la segunda. Una sola operación puede ser cualquiera de las siguientes:

  • insertar un carácter en la secuencia, en cualquier lugar,
  • eliminar cualquier carácter de la secuencia,
  • sustituir un carácter por otro.

A todos en nuestra universidad les encanta este problema —quizás un poco demasiado—, así que decidimos crear un problema que sea más fácil. Se te dan dos cadenas $s = s_1 \dots s_n$, $t = t_1 \dots t_m$ y un entero $k$. Averigua si la distancia de edición entre las cadenas es menor o igual a $k$. Si es así, también se te pide proporcionar cualquier secuencia del número mínimo posible de operaciones para transformar la primera cadena en la segunda.

Entrada

La primera línea de la entrada contiene el número de casos de prueba $z$ ($1 \le z \le 100$). A continuación siguen las descripciones de los casos de prueba.

La primera línea de cada caso de prueba contiene tres enteros $n, m, k$ ($1 \le n, m \le 1\,000\,000$, $0 \le k \le 1000$), las longitudes de las cadenas y el parámetro del problema.

La segunda línea contiene una cadena de longitud $n$ que consiste en letras minúsculas en inglés, la cadena $s$ del problema.

La tercera línea contiene una cadena de longitud $m$ que consiste en letras minúsculas en inglés, la cadena $t$ del problema.

La longitud total de todas las cadenas en todos los casos de prueba no excederá $10^7$.

Salida

Para cada caso de prueba, si la distancia de edición es mayor que $k$, imprime una sola línea que contenga la palabra “NO”. De lo contrario, la primera línea debe contener la palabra “YES”, y las siguientes líneas deben describir la respuesta de la siguiente manera:

En la segunda línea, imprime el número mínimo $r$ de operaciones requeridas para transformar $s$ en $t$. En las siguientes $r$ líneas, imprime las operaciones, una por línea:

  • Para insertar un carácter minúsculo en inglés $c$ en una secuencia de tamaño $w$ en la posición $p$ ($1 \le p \le w + 1$), imprime INSERT p c.
  • Para eliminar un carácter de una secuencia de tamaño $w$ en la posición $p$ ($1 \le p \le w$), imprime DELETE p.
  • Para sustituir un carácter en una secuencia de tamaño $w$ en la posición $p$ ($1 \le p \le w$) por un carácter minúsculo en inglés $c$, imprime REPLACE p c.

Ejemplos

Entrada 1

2
3 4 3
kot
plot
5 7 3
zycie
porazka

Salida 1

YES
2
REPLACE 1 l
INSERT 1 p
NO

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#537Editorial Open集训队作业 解题报告 by 李秉霈Qingyu2026-01-02 21:54:07 Download
#180EditorialOpen题解jiangly2025-12-12 23:57:27View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.