problems at the UVA ONLINE JUDGE, numbers: A Boxes - 11003 B Open Credit System - 11078 C Cheapest Base - 11005 D Rectilinear Polygon - 11106 E Necklace - 11001 F String Factoring - 11022 G Billiard bounces - 11130 H A Grouping Problem - 11026 Resolvidos: OK - A Boxes - programação dinâmica ( standard knapsack!! memoization off ) OK - B Open Credit System - nike OK - C Cheapest Base - nike( converter para todas as bases de 2 a 36 ) OK - D Rectilinear Polygon - segment tree( para verificar a intersecção entre os segmentos ) OK - E Necklace - aritmético ( calcular o máximo local da função dada, e verificar o maximo global para n = 1 ) OK - F String Factoring - programação dinâmica ( mcm - matrix chain multiplication ) OK - G Billiard bounces - nike (resolver o problema para a velocidade horizontal e vertical separadamente) OK - H A Grouping Problem - programação dinâmica ( facilita escrever para n=4 e k=2 -> a(b+c+d) + b(c+d) + c(d), para k > 2 , dá pra perceber que coisas que ja calculamos re-aparecem... ai é so usar a tabela. )