From efbebaf61e404876193ca87b63b8954810de6b5f Mon Sep 17 00:00:00 2001 From: arthur Date: Tue, 9 Dec 2025 22:23:28 -0300 Subject: [PATCH] fix: updated LCS problem stament and tutorial --- .../longest-common-subsequence-tutorial.pdf | Bin 93319 -> 113874 bytes .../longest-common-subsequence-tutorial.tex | 47 +++++++++++++++++- .../longest-common-subsequence.pdf | Bin 72040 -> 81152 bytes .../longest-common-subsequence.tex | 17 ++++--- .../statement/description.tex | 6 +-- .../statement/input.tex | 3 +- .../statement/notes.tex | 4 +- .../statement/output.tex | 4 +- .../statement/tutorial.tex | 47 +++++++++++++++++- 9 files changed, 112 insertions(+), 16 deletions(-) diff --git a/longest-common-subsequence/longest-common-subsequence-tutorial.pdf b/longest-common-subsequence/longest-common-subsequence-tutorial.pdf index 19af11e8f58d50a8ca6153ec2c6ab970a150b295..cd6ae76cd108edede238f3f24f94deb423b6d5eb 100644 GIT binary patch delta 64106 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%0D$d2l9u^qkt%VH?XRHmb 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

o6C_)-zQh(3@&4d=27)aX$#r~TSecfWtcLIl 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 diff --git a/longest-common-subsequence/longest-common-subsequence-tutorial.tex b/longest-common-subsequence/longest-common-subsequence-tutorial.tex index b037364..c07af40 100644 --- a/longest-common-subsequence/longest-common-subsequence-tutorial.tex +++ b/longest-common-subsequence/longest-common-subsequence-tutorial.tex @@ -64,4 +64,49 @@ dp[0][j] = 0 \quad \forall j \ge 0 dp[i][0] = 0 \quad \forall i \ge 0 \] -Isto representa que, se uma das strings tiver tamanho zero, nenhuma subsequência comum pode ser formada.\end{document} +Isto representa que, se uma das strings tiver tamanho zero, nenhuma subsequência comum pode ser formada. + +\subsection{Recuperação da Subsequência Comum} + +Após o preenchimento da matriz \( dp \), o valor \( dp[n][m] \) fornece o comprimento da maior subsequência comum entre \( s_1 \) e \( s_2 \). +No entanto, para obter também a subsequência em si, é necessário realizar um processo de \textit{backtracking} sobre a matriz. + +A ideia consiste em iniciar a partir da posição \( (n, m) \) da matriz e caminhar em direção à origem. +Em cada passo: + +\begin{itemize} + \item Se \( s_1[i] = s_2[j] \), então este caractere faz parte da LCS. Nesse caso, retrocedemos para \( (i-1, j-1) \). + \item Caso contrário, avançamos para o vizinho que contém o maior valor entre \( dp[i-1][j] \) e \( dp[i][j-1] \), pois esse vizinho indica o caminho que manteve o comprimento máximo da subsequência. +\end{itemize} + +Como a subsequência é reconstruída de trás para frente, os caracteres encontrados devem ser adicionados no início da string resultante. + +O algoritmo para recuperar uma subsequência comum de comprimento máximo é o seguinte: + +\begin{verbatim} +int i = n; // ponteiro para s1 +int j = m; // ponteiro para s2 +string lcs = ""; // subsequência comum sendo reconstruída + +// Enquanto ainda houver caracteres a considerar +while (i > 0 && j > 0) { + + // Caso 1: os caracteres são iguais → fazem parte da LCS + if (s1[i - 1] == s2[j - 1]) { + lcs = s1[i - 1] + lcs; // adiciona no início da string + i--; + j--; + } + // Caso 2: se o valor de cima é maior, movemos para cima + else if (dp[i - 1][j] > dp[i][j - 1]) { + i--; + } + // Caso 3: caso contrário, movemos para a esquerda + else { + j--; + } +} + +\end{verbatim} + +Ao final desse processo, a string \texttt{lcs} conterá uma maior subsequência comum entre as duas strings.\end{document} diff --git a/longest-common-subsequence/longest-common-subsequence.pdf b/longest-common-subsequence/longest-common-subsequence.pdf index c4e8ea777e43fe6322d1682470215fd57336922e..2b8197754582757b18bee750e5bd17ff0c6661bb 100644 GIT binary patch delta 13984 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 delta 6654 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 OB_Tn|!=rAXLHd6VqW|0g diff --git a/longest-common-subsequence/longest-common-subsequence.tex b/longest-common-subsequence/longest-common-subsequence.tex index 1961b4c..027fe00 100644 --- a/longest-common-subsequence/longest-common-subsequence.tex +++ b/longest-common-subsequence/longest-common-subsequence.tex @@ -3,18 +3,21 @@ \begin{document} \begin{ProblemaAutor}{}{Maior Subsequência Comum}{1}{256}{} -O problema consiste em determinar o comprimento da maior subsequência comum entre duas strings. -Uma subsequência é uma sequência que pode ser obtida a partir da string original removendo-se zero ou mais caracteres, sem alterar a ordem relativa dos restantes. -Dadas duas strings \( s_1 \) e \( s_2 \), o objetivo é encontrar o tamanho da maior subsequência que aparece em ambas. +O objetivo deste problema é determinar o comprimento da \textbf{maior subsequência comum} (Longest Common Subsequence - LCS) entre duas strings fornecidas. +Uma \textit{subsequência} é uma sequência que pode ser obtida a partir de uma string original removendo-se zero ou mais caracteres, sem alterar a ordem relativa dos caracteres restantes. +Dadas duas strings \( s_1 \) e \( s_2 \), deseja-se determinar \textbf{o comprimento da maior subsequência comum} e também \textbf{uma subsequência comum de comprimento máximo} presente em ambas. \Entrada -A entrada é composta por duas linhas. Na primeira linha, há dois inteiros \( n \) e \( m \) (\( 1 \leq n, m \leq 1000 \)), representando respectivamente os tamanhos das strings \( s_1 \) e \( s_2 \). +A entrada é composta por duas linhas. +Na primeira linha, há dois inteiros \( n \) e \( m \) (\( 1 \leq n, m \leq 1000 \)), representando respectivamente os tamanhos das strings \( s_1 \) e \( s_2 \). Na segunda linha, há duas strings \( s_1 \) e \( s_2 \), cada uma composta apenas por letras minúsculas do alfabeto, com tamanhos \( n \) e \( m \), respectivamente. \Saida -Imprima um único inteiro representando o comprimento da maior subsequência comum entre \( s_1 \) e \( s_2 \). +A saída consiste em duas linhas. +Na primeira linha, deve ser impresso o comprimento da maior subsequência comum. +Na segunda linha, deve ser impressa uma subsequência comum de comprimento máximo. \ExemploEntrada \begin{Exemplo} @@ -32,8 +35,8 @@ Imprima um único inteiro representando o comprimento da maior subsequência com Para as strings \( s_1 = abcde \) e \( s_2 = ace \), a maior subsequência comum é "ace", que possui tamanho 3. -Para \( s_1 = abc \) e \( s_2 = abc \), ambas as strings são idênticas, então a maior subsequência comum tem tamanho 3. +Para \( s_1 = abc \) e \( s_2 = abc \), ambas as strings são idênticas, logo a maior subsequência comum é "abc", que possui tamanho 3. -Para \( s_1 = abc \) e \( s_2 = hhh \), não há caracteres em comum, e portanto a maior subsequência comum tem tamanho 0. +Para \( s_1 = abc \) e \( s_2 = hhh \), não há caracteres em comum, e portanto a maior subsequência comum é a palavra vazia, que tem tamanho 0. \end{ProblemaAutor} \end{document} diff --git a/longest-common-subsequence/statement/description.tex b/longest-common-subsequence/statement/description.tex index 659f97b..4207f62 100644 --- a/longest-common-subsequence/statement/description.tex +++ b/longest-common-subsequence/statement/description.tex @@ -1,3 +1,3 @@ -O problema consiste em determinar o comprimento da maior subsequência comum entre duas strings. -Uma subsequência é uma sequência que pode ser obtida a partir da string original removendo-se zero ou mais caracteres, sem alterar a ordem relativa dos restantes. -Dadas duas strings \( s_1 \) e \( s_2 \), o objetivo é encontrar o tamanho da maior subsequência que aparece em ambas. +O objetivo deste problema é determinar o comprimento da \textbf{maior subsequência comum} (Longest Common Subsequence - LCS) entre duas strings fornecidas. +Uma \textit{subsequência} é uma sequência que pode ser obtida a partir de uma string original removendo-se zero ou mais caracteres, sem alterar a ordem relativa dos caracteres restantes. +Dadas duas strings \( s_1 \) e \( s_2 \), deseja-se determinar \textbf{o comprimento da maior subsequência comum} e também \textbf{uma subsequência comum de comprimento máximo} presente em ambas. diff --git a/longest-common-subsequence/statement/input.tex b/longest-common-subsequence/statement/input.tex index feb3a0f..13129e4 100644 --- a/longest-common-subsequence/statement/input.tex +++ b/longest-common-subsequence/statement/input.tex @@ -1,2 +1,3 @@ -A entrada é composta por duas linhas. Na primeira linha, há dois inteiros \( n \) e \( m \) (\( 1 \leq n, m \leq 1000 \)), representando respectivamente os tamanhos das strings \( s_1 \) e \( s_2 \). +A entrada é composta por duas linhas. +Na primeira linha, há dois inteiros \( n \) e \( m \) (\( 1 \leq n, m \leq 1000 \)), representando respectivamente os tamanhos das strings \( s_1 \) e \( s_2 \). Na segunda linha, há duas strings \( s_1 \) e \( s_2 \), cada uma composta apenas por letras minúsculas do alfabeto, com tamanhos \( n \) e \( m \), respectivamente. \ No newline at end of file diff --git a/longest-common-subsequence/statement/notes.tex b/longest-common-subsequence/statement/notes.tex index e38825d..beaf46f 100644 --- a/longest-common-subsequence/statement/notes.tex +++ b/longest-common-subsequence/statement/notes.tex @@ -1,5 +1,5 @@ Para as strings \( s_1 = abcde \) e \( s_2 = ace \), a maior subsequência comum é "ace", que possui tamanho 3. -Para \( s_1 = abc \) e \( s_2 = abc \), ambas as strings são idênticas, então a maior subsequência comum tem tamanho 3. +Para \( s_1 = abc \) e \( s_2 = abc \), ambas as strings são idênticas, logo a maior subsequência comum é "abc", que possui tamanho 3. -Para \( s_1 = abc \) e \( s_2 = hhh \), não há caracteres em comum, e portanto a maior subsequência comum tem tamanho 0. +Para \( s_1 = abc \) e \( s_2 = hhh \), não há caracteres em comum, e portanto a maior subsequência comum é a palavra vazia, que tem tamanho 0. diff --git a/longest-common-subsequence/statement/output.tex b/longest-common-subsequence/statement/output.tex index 7a38938..20353ff 100644 --- a/longest-common-subsequence/statement/output.tex +++ b/longest-common-subsequence/statement/output.tex @@ -1 +1,3 @@ -Imprima um único inteiro representando o comprimento da maior subsequência comum entre \( s_1 \) e \( s_2 \). +A saída consiste em duas linhas. +Na primeira linha, deve ser impresso o comprimento da maior subsequência comum. +Na segunda linha, deve ser impressa uma subsequência comum de comprimento máximo. \ No newline at end of file diff --git a/longest-common-subsequence/statement/tutorial.tex b/longest-common-subsequence/statement/tutorial.tex index fb768e7..992fa13 100644 --- a/longest-common-subsequence/statement/tutorial.tex +++ b/longest-common-subsequence/statement/tutorial.tex @@ -51,4 +51,49 @@ dp[0][j] = 0 \quad \forall j \ge 0 dp[i][0] = 0 \quad \forall i \ge 0 \] -Isto representa que, se uma das strings tiver tamanho zero, nenhuma subsequência comum pode ser formada. \ No newline at end of file +Isto representa que, se uma das strings tiver tamanho zero, nenhuma subsequência comum pode ser formada. + +\subsection{Recuperação da Subsequência Comum} + +Após o preenchimento da matriz \( dp \), o valor \( dp[n][m] \) fornece o comprimento da maior subsequência comum entre \( s_1 \) e \( s_2 \). +No entanto, para obter também a subsequência em si, é necessário realizar um processo de \textit{backtracking} sobre a matriz. + +A ideia consiste em iniciar a partir da posição \( (n, m) \) da matriz e caminhar em direção à origem. +Em cada passo: + +\begin{itemize} + \item Se \( s_1[i] = s_2[j] \), então este caractere faz parte da LCS. Nesse caso, retrocedemos para \( (i-1, j-1) \). + \item Caso contrário, avançamos para o vizinho que contém o maior valor entre \( dp[i-1][j] \) e \( dp[i][j-1] \), pois esse vizinho indica o caminho que manteve o comprimento máximo da subsequência. +\end{itemize} + +Como a subsequência é reconstruída de trás para frente, os caracteres encontrados devem ser adicionados no início da string resultante. + +O algoritmo para recuperar uma subsequência comum de comprimento máximo é o seguinte: + +\begin{verbatim} +int i = n; // ponteiro para s1 +int j = m; // ponteiro para s2 +string lcs = ""; // subsequência comum sendo reconstruída + +// Enquanto ainda houver caracteres a considerar +while (i > 0 && j > 0) { + + // Caso 1: os caracteres são iguais → fazem parte da LCS + if (s1[i - 1] == s2[j - 1]) { + lcs = s1[i - 1] + lcs; // adiciona no início da string + i--; + j--; + } + // Caso 2: se o valor de cima é maior, movemos para cima + else if (dp[i - 1][j] > dp[i][j - 1]) { + i--; + } + // Caso 3: caso contrário, movemos para a esquerda + else { + j--; + } +} + +\end{verbatim} + +Ao final desse processo, a string \texttt{lcs} conterá uma maior subsequência comum entre as duas strings. \ No newline at end of file