Enunciado distribuido na sala.
limn → ∞ (n/2)n/nn/2 = limn → ∞ (n1/2/2)n = ∞
Logo, (n/2)n = ω(nn/2) e (n/2)n = Ω(nn/2). As outras letras não cabem.
Após k arestas serem processadas, o conjunto A é uma floresta contendo árvores espalhadas mínimas para cada componente conexa do subgrafo formado por todos os vértices iniciais e pelas k arestas já processadas.
Algoritmo:
Complexidade: O(n lg n) pela ordenação, e O(n) pelo loop das linhas 4-28, dando um total de O(n lg n). Se a ordenação puder ser feita em tempo linear, então O(n) no total.
Representaremos
árvores binomiais como <chave>(<lista de
filhos>)
, omitindo listas vazias. Passos:
Desenho final:
Outras soluções são possíveis, dependendo da escolha das árvores de mesmo grau que serão unidas em alguns dos passos.
A ideia básica é executar os seguintes passos:
Buscar o elemento x, retornando o nó mais à direta, se houver vários nós que tenham chave x. Se x não existir na árvore, retornar o último nó visitado na busca por x.
Seja v o nó retornado no passo 1. Através de rotações, fazer v caminhar para cima até se tornar a raiz.
Fazer A1 ← v.esq e A2 ← v.dir. Com certeza, todas as chaves em A1 são menores ou iguais a x e todas as chaves em A2 são maiores que x.
Se a chave em v for maior que x, inserir v em A2; caso contrário, inserir v em A1.
A complexidade dos passos acima é O(h), O(h), O(1) e O(h), respectivamente, resultando ao final em O(h) para o algoritmo inteiro.
Estruturas adivionais necessárias: para o passo 2, se houver ponteiros para os pais ajuda muito; caso não haja, guardar o caminho da raiz até v no passo 1 para uso no passo 2.
Quem deu boa justificativa ganhou 1,0 ponto. Boas justificativas incluem:
Outros experimentaram valores. Dependendo do número de valores, ganharam:
Quem tirou log mas concluiu errado ganhou 0,3 pontos.
Demais justificativas foram consideradas fracas e não ganharam nada.
Quem disse apenas Ω ou apenas ω perdeu 0,2 pontos.
Aqui dependeu da qualidade do invariante, como segue.
Árvore espalhada mínima em cada componente: 1,0 ponto.
Número de arestas em cada componente: 0,75 pontos.
Subconjunto de uma árvore espalhada: 0,5 pontos.
Mais leves que não formam ciclo/vértices unidos: 0,25 pontos.
Demais invariantes foram considerados muito fracos e não ganharam nada. Por exemplo, quem se ateve ao histórico ao invés de se ater à situação atual (exemplo: mencionar aresta segura).
Aqui há critérios para ganhar pontos e critérios para perder pontos. Ganho de pontos:
Perda de pontos (-0,3 por evento):
Aqui a maioria acertou tudo. Foram apenas descontados pontos pelos seguintes deslizes:
Aqui há critérios para ganhar pontos e critérios para perder pontos. Ganho de pontos:
Perda de pontos:
© 2010 João Meidanis