A pesar de las restricciones, se pueden hacer las siguientes observaciones:
- La única razón para seleccionar el texto a copiar, por lo tanto, uno puede asumir que cada Ctrl-a es seguido inmediatamente por un Ctrl-C. por otra parte, Ctrl-C sin precedentes Ctrl-es inútil.
- Después de Ctrl-C, la única cosa sensata que hacer es Ctrl-V, porque todas las otras teclas en esa situación cambie nada o reemplazar el texto con una sola letra. (La única excepción sería si el texto copiado sería una sola carta, pero, a continuación, toda la copia no tendría sentido). Por otra parte, que pegue primero no cambia el texto (porque reemplaza con la copia sólo generados).
Por lo tanto, uno puede manejar "Ctrl-a Ctrl-C Ctrl-V" como un átomo de secuencia para copiar el texto en el portapapeles.
Dado que sólo estamos interesados en la longitud del texto, el texto y el portapapeles puede ser representado por el número de caracteres.
Por lo tanto, efectivamente tiene las siguientes tres operaciones:
- Añadir letra de ($t\leftarrow t+1$, costo 1)
- Copiar al portapapeles, incluye el primer no-texto-cambiar la pasta ($c\leftarrow t$, el costo 6)
- Pegar desde el portapapeles ($t\leftarrow t+c$, el coste es de 2)
Ahora, el siguiente observación puede hacerse: tan pronto Como hay más de 2 personajes en el portapapeles, es más eficaz para pegar que para escribir una carta. Por lo tanto, escribir cartas sólo es eficaz hasta la primera copia que se ha hecho (después de escribir al menos dos letras). Por otra parte, excepto para escribir una carta, todas las operaciones tienen un costo, por lo que el número de cartas inicialmente tipos deben tener la misma paridad que el número máximo de $n$ ( $n=40$ , debe haber un número par de pulsaciones de teclas).
Además, se debe considerar la secuencia de "pegar, copiar, pegar$^n$" frente a "copiar, pegar, pegar$^n$". El primero de ellos tiene el efecto de $(t,c)\mapsto((n+1)(t+c),t+c)$, el segundo tiene el efecto de $(t,c)\mapsto((n+2)t,t)$. Así que la segunda conduce a un texto más largo si $(n+2)t>(n+1)(t+c)$$t>(n+1)c$. Ahora bien, si la copia anterior fue seguido por $k$ pastas, a continuación,$t=(k+1)c$, y por lo tanto la condición se reduce a $k>n$. Es decir, si la secuencia de las pastas es decreciente, es advanteous a cambio de la pasta hacia atrás. O en otras palabras, el ideal de la secuencia el número de pasados después de consecutivos copias nunca disminuye. De forma análoga, también no debe ser mayor (porque entonces un desplazamiento a la derecha es ventajoso).
Ahora veamos el ideal de copia "$k$ tiempos" de la estrategia. Para $k=0$ no hay mucho para optimizar; siempre obtendrá $k$ letras. Para $k=1$, usted tiene inicialmente $m$ letras, y luego un 6 copia de la clave de la secuencia y, a continuación, $(n-6-m)/2$ pegar secuencias, lo que resulta en $m(n-m-4)/2$ letras. Así que tenemos que maximizar $m(n-m-5)$, lo que significa reducir al mínimo la diferencia de $\left|m-(n-m-5)\right|=\left|2m+5-n\right|$. En otras palabras, $m$ debe estar tan cerca como sea posible a $(n-5)/2$ (sin embargo, todavía debe tener el derecho de paridad). Por ejemplo, con $n=14$, obtenemos $(n-5)/2=4.5$, el número par más cercano a esto es $4$. Por lo tanto, el óptimo $k=1$-estrategia es de tipo 4 letras, copiar y luego pegar 2 veces, dando un total de 12 letras; aquí las letras-sólo la estrategia, claramente gana. Para$n=19$, $(n-5)/2=7$ que ya es impar y por lo tanto el óptimo. Esto le da a 28 letras escribiendo 7 letras, copiar y pegar 3 veces.
Ahora $n=19$ también permitiría que copiar dos veces. Sin embargo la única secuencia razonable, tipo 3 letras, copiar, pegar, copiar, pegar, le da sólo 12 letras, mucho menos que el 28 a partir de una sola copia de la estrategia.
OK, y ahora que es tan tarde en la noche que me voy a parar aquí.