Objectivos para o Teste Prático 1 (28 de Abril)

Aqui fica uma lista de objectivos para o 1º teste prático de DAA, que incidirá sobre os capítulos 1 a 4. Poderá implementar as soluções em C, C++ ou Java.

Formato:

Informações para o teste:

Podem (pré)submeter um ficheiro com código (e qualquer texto que queiram), ao qual terão acesso durante o teste - ir ao concurso "1º Teste Prático - Pré-Submissão de Código" e submeter um único ficheiro; se submeterem mais do que uma vez, apenas a última submissão estará disponível no dia do teste prático; o ficheiro (.txt) pode conter o que quiserem até um máximo de 500KB (até 23:59 de quarta, dia 27 de Abril).

As pontuações são parciais, significando que cada problema terá vários testes, cada um valendo um determinado número de pontos. Para cada teste pontuável existirá um teste não pontuável de características similares disponível para visualização quando falharem. Os testes pontuáveis são secretos. A sua pontuação é determinada pelos testes em que o seu programa acertar. Para terem 100% num problema será necessário terem uma solução eficiente. Uma solução com "força bruta" poderá portanto dar menos do que a pontuação ótima.

Os enunciados estão "despidos" da uma história mais gira para irem directos ao que é pedido de modo a que possam usar as duas horas de forma adequada. Para alguns dos problemas poderão ser dadas dicas sobre como resolver.

Terão acesso a documentação das vossa linguagens e às classes FastScanner e FastPrint, no Java.

O teste prático terá os seguintes 3+1 problemas para serem resolvidos em 2h (o último problema é para ter nota acima de 100%):

Problema A (34% da nota)

Greedy + Ordenação

Problemas exemplo:
- [DAA 014] O Problema do sapateiro (se saisse no teste seria explicado qual o critério a usar para ordenar as encomendas de sapatos)
- [DAA 009] ADN alienígena (um outro problema onde é preciso usar ordenação customizada)
- [DAA 013] Cobertura mínima (um outro problema greedy onde é necessário usar ordenação)

Problema B (33% da nota)

Pesquisa Binária

Problemas exemplo:
- [DAA 010] Somas mais próximas
- [DAA 011] Viagem de mochila às costas (mais complicado do que posso vir a colocar no teste como problema B)

Problema C (33% da nota)

Programação Dinâmica

Problemas exemplo:
- [DAA 017] Pirâmides
- [DAA 018] Troco de moedas

Problema D (20% da nota)

Tema Aberto