Dúvida sobre análise de algoritimos

Algoritmos Complexidade Computacional Programação Dinâmica Estruturas de Dados

Boa noite, não estou conseguindo resolver o exercício abaixo.

Considere o problema de troca para n centavos de Real usando o menor número de moedas possível. Suponha que o valor de cada moeda é um inteiro. 

 

  1. Suponha que as moedas disponíveis tem as denominações 1, 5, 10, 25. Forneça um algoritmo guloso para este caso e prove sua correção. 
  1. Suponha que as moedas disponíveis têm denominações que são potências de c: c0 , c1, ..., ck , para inteiros c > 1 e K ≥ 1. Mostre que o algoritmo guloso sempre encontra uma solução ótima neste caso. 
  1. Forneça um conjunto de denominação de moedas para o qual o algoritmo guloso não garante que a solução devolvida seja ótima. Inclua a moeda de 1 centavo no seu conjunto para que a troca seja possível para qualquer valor de n. 
  1. Forneça um algoritmo com consumo de tempo O(nk) que faça a troca para qualquer conjunto com k denominações diferentes de moedas, assumindo que uma delas é a de 1 centavo. 

 

Mostre como resolver o problema da mochila fracionaria em tempo O(n), sem supor que os inteiros em v[1..n] e w[1..n] são limitados (i.e o uso de RADIXSORT não é uma solução apropriada). 

 

Seja S[1..n] uma sequência (de inteiros). Uma sequência T[1..m] é subsequência de S se existem índices i1, i2, ..., im com 1 i1 < i2 < ... < im n tais que T[j] = S[ij]. Uma sequência T de S é crescente se T[1] ≤ T[2] ≤ ... ≤ T[m]. Uma subsequência crescente T é máxima (= mais longa) se o valor de m é o maior possível. Denote por (LIS) o problema de determinar uma subsequência crescente máxima para S. 

  1. Descreva e prove a subestrutura ótima dos subproblemas de (LIS). 
  1. Obtenha uma recorrência para uma solução recursiva simples  de (LIS) e analise o tempo requerido por ela.  
  1. Forneça um algoritmo em programação dinâmica que resolve (LIS) em tempo O(n2) . 

Continuando o exercício anterior, forneça um algoritmo em programação dinâmica que resolve (LIS) em tempo O(n log n). 

Foto de Josinei D.
Josinei perguntou há 1 ano

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida

Professores particulares de Algoritmos

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 60 / h
César D.
Mogi Guaçu / SP
César D.
4,9 (811 avaliações)
Horas de aulas particulares ministradas 87 horas de aula
Tarefas resolvidas 995 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Algoritmos - Geral
Graduação: Matemática Aplicada e Computacional (Universidade Estadual de Campinas (UNICAMP))
Faça aulas de matemática, computação e programação em c, c++, java e python.
R$ 60 / h
Brennon O.
Ponta Grossa / PR
Brennon O.
5,0 (3 avaliações)
Horas de aulas particulares ministradas 42 horas de aula
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Algoritmos - C++ Algoritmos - Estruturas de Repetição Algoritmos - Grafos
Graduação: Jogos Digitais (Ampli)
Ensino programação de forma prática e focada em seus objetivos. Seja jogos, web, ou qualquer outra. Vamos agendar sua primeira aula gratuíta!
R$ 75 / h
Danilo L.
Campina Grande / PB
Danilo L.
4,9 (18 avaliações)
Horas de aulas particulares ministradas 27 horas de aula
Tarefas resolvidas 1 tarefa resolvida
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Algoritmos - C++ Algoritmos - repetição Algoritmos - decisão
Graduação: Engenharia da Computação (IFPB - Campus Campina Grande )
Desenvolvedor web full stack. Acompanhamento particular em excel/vba, python, c/c++, java, selenium e js!