Ontem o mapa do festival me mandou dar uma volta enorme reclamou uma visitante. Para reduzir aglomeracoes…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Criar soluções de problemas para os quais seja adequado o uso de árvores e grafos para descrever suas informações e automatizá-las usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Ontem o mapa do festival me mandou dar uma volta enorme reclamou uma visitante. Para reduzir aglomeracoes, a organizacao do evento definiu corredores de mao unica entre as areas e divulgou as ligacoes em cartazes. A equipe de TI vai criar um aplicativo que funcione offline em celulares simples, permitindo que a pessoa escolha uma area (por exemplo, Praca) e veja apenas para onde pode seguir a partir dali. As ligacoes (sentido unico) sao: Entrada->Rua das Barracas; Rua das Barracas->Praca; Rua das Barracas->Saida; Praca->Palco; Praca->Banheiros; Banheiros->Praca; Palco->Bastidores; Palco->Saida. A equipe notou que ha ciclos (Banheiros volta para Praca) e que nem todas as areas se ligam entre si. Analise o cenario e identifique a forma de representar essas ligacoes que economiza memoria no celular e permite listar rapidamente as saidas possiveis a partir de uma area.
- A) Representar as ligacoes por uma lista unica de areas em ordem e inferir saidas pela posicao na lista
- B) Representar as ligacoes por um dicionario: area -> lista de proximas areas acessiveis
- C) Representar as ligacoes por uma arvore com raiz na Entrada e cada area aparecendo uma vez
- D) Representar as ligacoes por uma matriz n x n com 1 ou 0 para cada par de areas
- E) Representar as ligacoes por um texto unico com todas as setas e procurar por palavras sempre que precisar
✅ Resposta correta: alternativa B
Resolução passo a passo
- O problema pede uma forma de representar ligações direcionadas (sentido único), que podem formar ciclos e nem sempre conectam todas as áreas, economizando memória e permitindo listar rapidamente as saídas a partir de uma área escolhida. Passo 2: A resposta correta é a B: um dicionário em que cada área é a chave e o valor é a lista das áreas que podem ser alcançadas diretamente a partir dela. Por exemplo, Praça -> [Palco, Banheiros] e Banheiros -> [Praça]. Passo 3: Essa estrutura guarda apenas as ligações que existem, sem espaço para pares inexistentes, e consultar as saídas de uma área é ir direto à sua lista, sem percorrer o resto do mapa. Passo 4: Ciclos não são problema, pois basta cada área apontar para seus vizinhos imediatos, e áreas sem ligação entre si simplesmente não aparecem nas listas umas das outras. Passo 5: A alternativa A está errada porque uma lista em ordem com inferência por posição não consegue representar um sentido único arbitrário entre áreas. Passo 6: A alternativa C está errada porque uma árvore não representa ciclos como Banheiros -> Praça e Praça -> Banheiros e não cabe o mapa inteiro com cada área aparecendo uma única vez. Passo 7: A alternativa D está errada porque a matriz n x n ocupa memória para todos os pares, inclusive os inexistentes, o que é desperdício em um mapa com poucas ligações. Passo 8: A alternativa E está errada porque um texto corrido exige varredura e busca por palavras a cada consulta, o que é lento e pouco prático em celulares simples. Passo 9: Gabarito oficial confere com a resolução: B.
💡 Dica: Pense em estruturas de dados que associam cada área às suas conexões diretas.
Alternativa por alternativa
O aluno acha que basta listar as áreas em ordem, já que a posição parece organizar tudo, sem perceber que a lista não registra quais ligações existem entre elas.
Lista de adjacencia guarda apenas corredores existentes e permite obter vizinhos de uma area diretamente, facilitando a busca de caminhos.
O aluno pensa que todo mapa de saídas pode ser transformado em árvore a partir da Entrada, ignorando que a árvore não comporta ciclos como Banheiros -> Praça -> Banheiros nem a repetição de áreas.
O aluno associa representação de grafos apenas à matriz de adjacência, sem considerar que ela desperdiça memória quando o grafo tem poucas arestas, como neste mapa.
Por que engana: Confundir estruturas de dados e escolher representações que não permitem acesso rápido às conexões diretas.
O aluno imagina que anotar as setas em texto já basta, sem perceber que buscar palavras a cada consulta torna a listagem de saídas lenta e pouco eficiente.
Raio-X da questão
representação de grafos direcionados
avaliacao
conceito de grafo direcionado · listas e dicionários em programação
Estude estruturas de dados para grafos e listas de adjacência.
Confundir estruturas de dados e escolher representações que não permitem acesso rápido às conexões diretas.
pensamento_critico
cotidiano
Questões parecidas com resolução
- — Se eu sair do portão principal, consigo chegar aos banheiros sem passar pelo palco? — perguntou um visitante na Feira…
- "Se um corredor ficar bloqueado, a gente precisa ter uma volta sem se perder", explicou a monitora de um parque ao…
- No painel de um aplicativo de mobilidade, a equipe de desenvolvimento registrou os pontos de aluguel de bicicletas da…
- — Se a gente criar mais uma “casinha de livros” na cidade, o mapa do aplicativo vai precisar mudar? — perguntou Lia. No…
- Uma equipe de mobilidade urbana está desenvolvendo um aplicativo para planejar viagens entre cidades brasileiras. Cada…
- Antes do início da feira de sábado, o mapa digital da praça precisa ser atualizado. As barracas de frutas devem aparecer…
Todas as questões de Programação - Programação usando grafos e árvores
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
