Patrunjel Posted February 28, 2011 Report Posted February 28, 2011 Castigatorul challenge-ului precedent a fost cmiN .Felicitari De data asta am ceva mai usor, poate asa voi avea mai mult de un participant Clasica problema a rucsacului ( *Disclaimer* Cine cauta pe net rezolvarea problemei suge pula la cai morti *Gada Disclaimeru* ).Aveti un numar de n obiecte.Pentru fiecare stiti greutatea (kg) si pretul pe care il luati pe obiect, daca il duceti la amanet.Tinand cont ca aveti o Dacia 1310 care duce maxim X kilograme (X citit de la tastatura).Scrieti un program prin care sa stabiliti pe care dintre cele n obiecte le bagati in Dacie, pentru a lua cat mai multi bani (Faceti un singur drum, si nu puteti taia obiectele, au valoare sentimentala)Si, inca odata, felicitari cmiN Quote
l3asketballplayer Posted February 28, 2011 Report Posted February 28, 2011 baga si tu ceva mai greu Quote
cmiN Posted February 28, 2011 Report Posted February 28, 2011 Nu e greedy fiindca nu poti taia obiectele (valoare sentimentala) e dinamica si am rezolvat-o acum ceva vreme (plus inca cateva care semanau).E cazul 1-0 (un singur obiect) C++ | #include <cstdio> typedef unsigned int ui_t; c - CmiNMai e cazul cand pot fi folosite o infinitate de obiecte si atunci e de ajuns un vector pentru cost nu o matrice. Quote
Patrunjel Posted February 28, 2011 Author Report Posted February 28, 2011 (edited) @cmiN merge si cu greedy, bagi tot intr-un vector, il sortezi in functie de raportul greutate/castig si apoi afisezi elemente pana greutatea iti ajunge mai mica decat greutatea urmatorului element.Defapt e greedy euristic, ca daca mai ai loc, de ex, pentru 2 kile, si urmatorul element are raport 3/4 da are 5 chile, si unu de pe la urma are, sa zicem, 1/6 raportul eficientei, da are 1 kil, nu ti-l ia pe ala de un chil, doar se opreste, si la suma primita in total nu se aduna si suma pentru ala de un kil.Si iara am scris ca disperatu.... Abea daca ai putea taia obiectele ai avea greedy ne-euristic, care va da rezultatul corect, fara cazuri de-astea de cacat unde face fite @50cent Daca e de greedy, de ce nu incerci s-o faci si sa te convingi ca nu e, sau sa ne convingi pe noi ca e PS: Pula, n-avem tag-uri pentru spoiler vreunu care stie cu ce se mananca treaba asta, aveti idee cum sa facem cumva sa ascundem commenturile legate de rezolvare?Adica sa nu dea cineva peste rezolvare fara sa vrea, poate ar fi vrut omu sa vada daca poate singur (asta presupunand ca s-ar dovedi cineva interesat de challenge-uri ) Edited February 28, 2011 by Patrunjel Quote