OBI2012 Caderno de soluções

Documentos relacionados
AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

Teoria dos Grafos Aula 6

Otimização em Grafos

Capítulo 2- Modelos de grafos.

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina

GRAFOS Aula 07 Algoritmos de Caminho Mínimo: Bellman-Ford / Floyd-Warshall Max Pereira

Teoria dos Grafos Aula 14

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Aula 3 PROFESSOR TUTA

Métodos de Pesquisa Operacional

Árvores de Suporte de Custo Mínimo

Estruturas de Dados Grafos

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

Grafos: árvores geradoras mínimas. Graça Nunes

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

5 de setembro de Gabarito. 1) Considere o ponto P = (0, 1, 2) e a reta r de equações paramétricas. r: (2 t, 1 t, 1 + t), t R.

Teoria dos Grafos Aula 23

GAAL /1 - Simulado - 3 exercícios variados de retas e planos

XXV OLIMPÍADA BRASILEIRA DE MATEMÁTICA TERCEIRA FASE NÍVEL 1 (5 ª ou 6 ª Séries)

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

1 Trajeto Euleriano. > Trajeto Euleriano 0/20

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina

Grafos: caminhos (matriz adjacência)

Aula 19: Lifting e matrizes ideais

Olimpíada Brasileira de Informática OBI2008 Programação Nível Júnior Fase 2 1. Auto Estrada. Nome do arquivo fonte: auto.c, auto.cpp ou auto.

Teoria dos Grafos. Árvores

Exemplo: Maximização de lucros em uma chocolateria que produz os seguintes produtos: (1) Chocolate Pyramide (2) Chocolate Pyramide Nuit

XXVII Olimpíada Brasileira de Matemática GABARITO Segunda Fase

OPEMAT. Olimpíada Pernambucana de Matemática

Gabarito P2. Álgebra Linear I ) Decida se cada afirmação a seguir é verdadeira ou falsa.

Arranjos. Claudio Esperança Paulo Roma LCG/UFRJ. All rights reserved.

Distâncias Mínimas. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Distâncias Mínimas 2014/ / 27

Aula 14. Aula de hoje. Aula passada

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

Algoritmo de Dijkstra Estudo e Implementação

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

MAT2457 ÁLGEBRA LINEAR PARA ENGENHARIA I 2 a Lista de Exercícios - 1 o semestre de f 1 = 2 e 1 e 2 e 3,

Álgebra Linear I - Aula 2. Roteiro

Grandezas Escalares e Vetoriais

J. Delgado - K. Frensel - L. Crissaff Geometria Analítica e Cálculo Vetorial

Módulo de Círculo Trigonométrico. Relação Fundamental da Trigonometria. 1 a série E.M.

OBI2013 Caderno de Soluções

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

Aula 8: Complemento a Um e Complemento a Dois

38 a OLIMPÍADA BRASILEIRA DE MATEMÁTICA 2 a Fase Nível 1 (6 o ou 7 o ano)

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Algoritmos de Busca. Profº Carlos Alberto T. Batista

XXVIII Olimpíada Brasileira de Matemática GABARITO Segunda Fase

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos Aula 5

PROJETO E ANÁLISE DE ALGORITMOS (INF 2926)

Teoria dos Grafos. Edson Prestes

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos

Projeto e Análise de Algoritmos

15 - Coloração Considere cada um dos grafos abaixo:

Técnicas de Projeto de Algoritmos

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

PROPORÇÕES GEOMÉTRICAS: SEMELHANÇA de FIGURAS

Busca em Largura. Adaptado de Humberto C. B. Oliveira

OBI2018 Caderno de Tarefas

Aula 5 - Produto Vetorial

Teoria dos Grafos Aula 24

Programação Estruturada

Otimização em Grafos

CÁLCULO II. Lista Semanal 3-06/04/2018

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Material Teórico - Inequações Produto e Quociente de Primeiro Grau. Sistemas de inequações. Primeiro Ano do Ensino Médio

1 Segmentos orientados e vetores, adição e multiplicação

UNIP - Universidade Paulista. ICET - Instituto de Ciências Exatas e Tecnológicas - Arquitetura e Urbanismo -

Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função 1/ 19

Álgebra Linear I - Aula 5. Roteiro

Transcrição:

OBI2012 Caderno de soluções Modalidade Programação Nível 2, Fase 2 12 de maio de 2012 Promoção: Patrocínio:

Olimpíada Brasileira de Informática OBI2012 1 Álbum de fotos Dado um retângulo X Y e dois retângulos X 1 Y 1 e X 2 Y 2, decida se é possível colocar estes dois retângulos no interior do primeiro retângulo, sem sobreposição, possivelmente rotacionados, mas com lados paralelos aos do primeiro retângulo. 1 X, X i 1000 1 Y, Y i 1000 É fácil ver que se existir uma solução, então existe uma solução onde um retângulo contém um canto do retângulo maior e o outro contém o canto oposto. Logo basta testar cada uma das 2 2 = 4 orientações possíveis por sobreposições/pedaços para fora.

Olimpíada Brasileira de Informática OBI2012 2 Soma das casas Dados N inteiros em ordem crescente, determinar quais os dois inteiros A e B cuja soma é K. 2 N 10 5 0 a i 10 9 Para todos i e j, a i < a j se i < j A solução mais simples e que ganhava uma pontuação parcial na questão tem complexidade O(N 2 ) e funciona assim: para cada inteiro da sequência busca linearmente no resto da sequência se existe o outro elemento para que a soma dos dois seja K. Mas essa solução é muito lenta para N = 10 5, pois (10 5 ) 2 = 10 10, o que é muito. A solução esperada era com complexidade O(N) ou O(NlgN). A solução com complexidade linear é da seguinte forma: um apontador é criado para o começo da sequência e outro para o final. Comparações vão então sendo feitas, chamando o índice do elemento indicado pelo primeiro apontador de i e o do segundo de j temos 3 possibilidades: a i + a j < K a i + a j > K a i + a j = K No terceiro caso temos a solução então podemos parar de buscar. No primeiro caso a soma é menor do que K, então precisamos aumentá-la, para isso devemos avançar i, fazendo i = i + 1, pois a i+1 > a i, não faria sentido mexer j já que ele vai no sentido de reduzir a soma. Agora, quando temos o segundo caso devemos mover j, fazendo j = j 1, pois a j 1 < a j. Como cada posição da sequência não é visitada mais do que uma vez, a complexidade dessa solução é O(N). A solução de complexidade O(N lgn) envolve ideia similar à solução quadrática, com uma pequena alteração, ao invés de uma busca linear no vetor é feita uma busca binária, que possui complexidade O(lgN), dessa forma são feitas N buscas binárias, uma para cada posição da sequência e a complexidade final fica O(NlgN).

Olimpíada Brasileira de Informática OBI2012 3 Bomba Dado um grafo orientado G e um conjunto M de arestas de G, devemos nos restringir a passeios orientados em que a 3 a, 6 a,, arestas devem pertencer a M, ao passo que as demais não podem pertencer a M. O problema é calcular distâncias usando esses passeios. O grafo G pode ter até 500 vértices e 2000 arestas. Busca em largura no grafo em 3 camadas, ou, de forma equivalente, 3 rótulos por vértice, em que no primeiro e no segundo se espera uma aresta fora de M e no terceiro uma aresta em M.

Olimpíada Brasileira de Informática OBI2012 4 Banco Um banco possui C caixas que atendem em esquema de fila única, quem chega primeiro é atendido antes. N clientes chegam em sequencia, o i-ésimo cliente chega t i minutos depois da agência abrir e demora a i minutos para ser atendido pelo caixa. Cada caixa só pode atender um cliente por vez. Pede-se quantos clientes demoram mais de 20 minutos para ser atendidos após entrarem na agência. 1 C 10 1 N 1000 1 t i 300 1 a i 10 Para resolver este problema, note que o tempo máximo para alguém ser atendido é de 10300 minutos desde o tempo inicial. Isto acontece quando se tem apenas C = 1 caixas, N = 1000 clientes a serem atendidos, todos chegam com t i = 300 minutos e todos necessitam de a i = 10 minutos para serem atendidos. Sabendo disto, podemos, basicamente, simular todas as ações que ocorrem no banco, minuto a minuto, até que não haja mais clientes no banco. Para resolver isto, usamos uma fila como estrutura de dados para armazenarmos quais os clientes que já estão no banco, mas ainda faltam ser atendidos, a partir do minuto 1. Por fim, também adicionamos vetores para dizer quantos caixas estão livres para, caso estejam livres, peguem o próximo da fila e, do contrário, informe quanto tempo é necessário para terminar de atender ao cliente atual. A complexidade disto é de O(T empot otal C), onde T empot otal é o tempo que você imprimirá como resposta, que será pequeno.