Disciplina: ACH2108 - Desafios de Programação II
2º Semestre de 2019
Além de submeter a solução no sistema acima, cada grupo deverá mostrar o resultado da submissão ao professor e enviar um e-mail ao docente (digiampietri@usp.br) durante a aula contendo:
|
ID | Problema | Enunciado em Português | Entradas | Saídas | Aproveitamento do Problema | Simplista // Solução_Submetida | Discussão/Dicas | ||
102 | Mochila Binária Ecológia | entrada.txt | saida.txt | O(1) | O(1) | Complete o arquivo Main.java ou Main.c | |||
1001 [URI] | Extremamente Básico | O(1) | O(1) | A entrada é composta por apenas um par de números inteiros. Se desejar, use o arquivo Main.java para implementar sua solução. | |||||
108 | Soma Máxima | entrada.txt
entrada2.txt entrada3.txt |
saida.txt
saida2.txt saida3.txt |
O(n^6) | O(n^3) e O(n^4) | Arquivo Main.java para a leitura da matriz (implemente o método executar para resolver este problema). Dica1: Para a solução n^4 use uma matriz auxiliar (calculada utilizando programação dinâmica) e contendo, para cada posição (i,j) a soma dos elmentos da sub-matriz de (0,0) até (i,j). Dica2: Para a solução n^3 calcule a soma máxima (SM) das (n+1)*n/2 linhas correspondentes a soma de linhas consecutivas da matriz original (por exemplo, SM da linha 1, SM da soma das linhas 1 e 2, SM das linhas 1, 2 e 3, sm das linhas 2 e 3 ...). |
![]() |
||
532 | Mestre da Masmorra | entrada.txt
entrada2.txt entrada3.txt |
saida.txt
saida2.txt saida3.txt |
O(6^(n^3)) | O(6^30) | Complete o arquivo Main.java. O problema é, naturalmente, resolvido por uma busca em largura mas pode ser resolvido com tentativa e erro tomando-se cuidado para não usar caminhos maiores do que o maior já encontrado [ou do que o máximo definido pelo enunciado]. | |||
147 | Dólares | entrada1.txt entrada2.txt entrada2_br.txt |
saida1.txt saida2.txt |
O(m^n) | O(m*n) | Complete o arquivo Main.java. Dica: é necessário usar programação dinâmica. Sugestão: use um arranjo com todos os valores possíveis de entrada e preencha utilizando programação dinâmica considerando os diferentes valores de notas/modedas. Dica2: as respostas podem ser números bastante grandes, sugere-se usar double; os valores de entrada são decimais múltiplos de 0,05, sugere-se multiplicar por 20 para utilizar inteiros. | |||
297 | QuadTree | entrada.txt | saida.txt | O(n^2) | O(n) | Complete o arquivo Main.java | |||
12487 | Perdido na Noite | entrada1.txt
entrada2.txt |
saida1.txt saida2.txt |
Complete o arquivo Main.java. A resposta do problema é igual a relação entre a distância da bifurcação do caminho até o hotel mais caro dividida pela soma das distâncias dos caminhos da bifurcação até o hotel mais barato e da bifurcação até o hotel mais caro. | |||||
572 | 572 - Depósito de Petróleo | entrada1.txt | saida1.txt | Complete o arquivo Main.java. Dica: para cada novo depósito que você encontrar, o mais fácil é marcar/remover todos os pontos daquele depósito da matriz. | |||||
12648 | Chefe | entrada1.txt
entradas.zip |
saida1.txt saidas.zip |
Complete o arquivo Main.java. Dica: se você montar em memória a estrutura como um grafo onde os nós possuem os dados de cada pessoa, a troca de duas pessoas no grafo pode ser feita apenas trocando os valores dos atributos dos nós, sem nenhuma outra alteração na rede. | |||||
170 | 170 - Paciência de Relógio | entrada1.txt | saida1.txt | Complete o arquivo Main.java. Dicas: observe a ordem das cartas (invertida em relação à entrada); lembre-se de colocar um zero a esquerda na saída caso o contador de cartas seja menor que 10; pensem em uma maneira simples de armazenar as cartas e de fazer uma conversão fácil de carta para valor. Se quiser, adapte a leitura de cartas de forma a ficar mais eficiente (já organizando as cartas na estrutura que vocês forem utilizar). | |||||
1291 | Dance, Dance, Revolution! | entrada.txt | saida.txt | O(2^n) | O(n*(m^2)) | Complete o arquivo Main.java. Uma implementação simplista usando tentativa e erro não irá satisfazer o limite de tempo imposto pelo sistema. Sugere-se o uso de programação dinâmica de forma semelhante à utilizada para o cálculo da distância de edição [1] [2]. | |||
417 | Índice da Palavra | entrada.txt | saida.txt | O(n!) | O(n^2) | Complete o arquivo Main.java. Dica: você pode dividir o problema em, dada uma palavra com x letras, contar quantas palavras existem com menos de x letra e adicionar a posição da palavra atual entre as palavras que têm x letras. | |||
1235 | 1235 - Cadeado anti força bruta | entrada.txt | saida.txt | Complete o arquivo Main.java. Dicas: a distância (ou custo) entre duas chaves é calculada de maneira bastante simples, bem como da combinação inicial para qualquer chave. A partir dessas distâncias, o problema se torna o de encontrar o custo da árvore geradora mínima (ou árvore geradora de custo mínimo). | |||||
12485 | Coral Perfeito | entrada.txt | saida.txt | Complete o arquivo Main.java. |