Solução escrita por Enzo Dantas e Caique Paiva
Um emparelhamento é um conjunto de arestas onde cada vértice tem grau 1 ou 0. Dada uma árvore com vértices, qual é o maior número de arestas em um emparelhamento?
Input
A primeira linha tem um inteiro : O número de vértices. Os vértices são numerados em .
Então, temos linhas descrevendo as arestas. Cada linha tem dois inteiros : tem uma aresta de para .
Output
Imprima um inteiro: a quantidade máxima de pares.
Constantes
Entrada | Saída |
5 1 2 1 3 3 4 3 5 |
2 |
Explicação: O maior emparelhamento possível é e .
(Link para submeter o problema).
Olhe para as folhas do grafo.
Solução gulosa:
Perceba que não faz sentido deixar uma folha e seu pai despareados, a não ser que o pai esteja pareado com outra folha. Assim, começando pelas folhas e subindo, podemos escolher gulosamente um vértice não pareado com nenhum de seus filhos e pareá-lo com um deles caso ambos estejam despareados.
Segue o código para melhor entendimento