Eto, mislim da nije lose pokrenuti diskusiju i o zadnjem USACO takmicenju.
Ja sam ,kao, uradio sve..Prvi je 100% tacan , ideja za drugi mi je 100% tacna, a za treci ne mogu nista da tvrdim.
Ukoliko neko nije znao da uradi prva 2 zadatka , poslacu moja resenja :
Prvi zadatak :
Ovo je "well-known" problem..Resenje je u tome da za i-tu kravu pamtimo minimalnu i maximalnu visinu
do (i + 2^j - 1)-te krave.A resenje za neki interval A..B trazimo tako sto za svaki ukljucen bit u (B-A+1) na k-toj poziciji, radimo
drugi zadatak
Zadatak se radi tehnikom dinamickog programiranja.Slozenost algoritma je PxM.
Resenje :
i-ti posao pokusavamo da udruzimo sa predhodnih j poslova , pa da se oni izvrse u jednom mesecu i da se nadoknada od svih prebaci u sledeci mesec.
Znaci, ako udruzujemo sve poslove od (k=i-j+1)-tog do i-tog , tu grupu mozemo ostaviti da se izvrsi nezavisno od predhodnih poslova.Tj. , da placanje pocnemo u mesecu u kome nema zaostataka iz predhodnih. Ili , tu grupu pokusavamo da izvrsimo u nekom mesecu u kome je ostao neki zaostatak..
Taj zaostatak moze biti najvise M - suma_pocetaka_iz_grupe , jer uostalom nebismo mogli da isplatimo sve..
U trecem zadatku sam radio greedy ..Slozenost je O(nlogn)..Ali , kao sto rekoh , nimalo nisam siguran za njegovu tacnost..
Ukoliko je neko uradio 3 i siguran je za ideju , bilo bi lepo da je iznese.Hvala.
Nadam se da ste razumeli ideje za prva 2.
Toliko od mene.
Pozdrav,
Relja
Ja sam ,kao, uradio sve..Prvi je 100% tacan , ideja za drugi mi je 100% tacna, a za treci ne mogu nista da tvrdim.
Ukoliko neko nije znao da uradi prva 2 zadatka , poslacu moja resenja :
Prvi zadatak :
Ovo je "well-known" problem..Resenje je u tome da za i-tu kravu pamtimo minimalnu i maximalnu visinu
do (i + 2^j - 1)-te krave.A resenje za neki interval A..B trazimo tako sto za svaki ukljucen bit u (B-A+1) na k-toj poziciji, radimo
res_min = min(res_min , minV[A][k])
res_max = max(res_max , maxV[A][k])
A = A + (2^k)
drugi zadatak
Zadatak se radi tehnikom dinamickog programiranja.Slozenost algoritma je PxM.
Resenje :
i-ti posao pokusavamo da udruzimo sa predhodnih j poslova , pa da se oni izvrse u jednom mesecu i da se nadoknada od svih prebaci u sledeci mesec.
Znaci, ako udruzujemo sve poslove od (k=i-j+1)-tog do i-tog , tu grupu mozemo ostaviti da se izvrsi nezavisno od predhodnih poslova.Tj. , da placanje pocnemo u mesecu u kome nema zaostataka iz predhodnih. Ili , tu grupu pokusavamo da izvrsimo u nekom mesecu u kome je ostao neki zaostatak..
Taj zaostatak moze biti najvise M - suma_pocetaka_iz_grupe , jer uostalom nebismo mogli da isplatimo sve..
U trecem zadatku sam radio greedy ..Slozenost je O(nlogn)..Ali , kao sto rekoh , nimalo nisam siguran za njegovu tacnost..
Ukoliko je neko uradio 3 i siguran je za ideju , bilo bi lepo da je iznese.Hvala.
Nadam se da ste razumeli ideje za prva 2.
Toliko od mene.
Pozdrav,
Relja