feat: new graph problems formatted.
This commit is contained in:
40
metro/metro-tutorial.tex
Normal file
40
metro/metro-tutorial.tex
Normal file
@@ -0,0 +1,40 @@
|
||||
\documentclass[10pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{amsmath,amsthm,amssymb}
|
||||
\usepackage{fullpage}
|
||||
\usepackage{url}
|
||||
\pagenumbering{gobble}
|
||||
\usepackage{hyperref}
|
||||
|
||||
\title{ Tutorial: Metro}
|
||||
\author{OBI 2015}
|
||||
\date{}
|
||||
\begin{document}
|
||||
\maketitle
|
||||
O grafo do sistema tem uma propriedade importante: a estação central é a única
|
||||
estação com grau pelo menos $5$, pois dela saem todas as linhas radiais. As
|
||||
outras estações pertencem a caminhos radiais ou à linha circular. Mesmo uma
|
||||
estação onde uma radial encontra o círculo tem grau no máximo $4$.
|
||||
|
||||
Primeiro encontramos essa estação central analisando os graus dos vértices.
|
||||
Depois removemos a central do grafo. O que resta é a linha circular com alguns
|
||||
caminhos pendurados nela, correspondentes aos trechos radiais antes ou depois do
|
||||
círculo.
|
||||
|
||||
Para isolar somente a linha circular, fazemos uma poda de folhas:
|
||||
\begin{enumerate}
|
||||
\item calcule o grau de cada vértice desconsiderando a estação central;
|
||||
\item coloque em uma fila todos os vértices de grau $0$ ou $1$;
|
||||
\item enquanto a fila não estiver vazia, remova o vértice da frente e reduza
|
||||
o grau de seus vizinhos ainda não removidos;
|
||||
\item quando algum vizinho passar a ter grau $1$, coloque-o na fila.
|
||||
\end{enumerate}
|
||||
|
||||
Esse processo remove todos os caminhos que estão pendurados no ciclo. Os
|
||||
vértices que não foram removidos ao final são exatamente as estações da linha
|
||||
circular, então basta contá-los.
|
||||
|
||||
\textbf{Complexidade de tempo:} $O(N + M)$.
|
||||
|
||||
\textbf{Complexidade de espaço:} $O(N + M)$.
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user