feat: new graph problems formatted.

This commit is contained in:
2026-08-24 14:47:58 -03:00
parent 5316029272
commit f89d4158cd
443 changed files with 2218170 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
Podemos simular diretamente o espalhamento da água. Cada posição molhada gera
novas posições molhadas segundo as regras do enunciado:
\begin{itemize}
\item se a célula imediatamente abaixo está dentro da matriz e é
\texttt{.}, ela também fica molhada;
\item se existe uma prateleira imediatamente abaixo da posição atual, a água
pode se espalhar para a esquerda e para a direita na mesma linha.
\end{itemize}
Para evitar processar a mesma posição várias vezes, sempre que uma célula
\texttt{.} fica molhada, trocamos seu caractere para \texttt{o} e a colocamos em
uma fila. Enquanto a fila não estiver vazia, removemos uma posição e tentamos
aplicar os movimentos descritos acima.
As prateleiras nunca viram água, portanto células com \texttt{\#} são apenas
obstáculos que podem sustentar o espalhamento lateral.
Como cada célula da matriz é inserida na fila no máximo uma vez, a complexidade
de tempo é $O(N \cdot M)$. A matriz e a fila também usam $O(N \cdot M)$ de
espaço.