Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Interviewstreet  (Citit de 2541 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« : Noiembrie 06, 2011, 02:14:55 »

Am descoperit de curand un site destul de misto cu cateva probleme de antrenament si cateva probleme cu care zic ei ca aplici la niste firme. http://www.interviewstreet.com/ e site-ul. Ca sa vedeti problemele trebuie sa fiti logati, dar un "Sign in with Facebook" e suficient. Smile

Dintre problemele de antrenament mi-a placut asta asta dar nu ma prea prind ce structura de date ar trebui folosit ca sa iasa complexitatea O(TlogT) sau O(TlogD). Are careva vreo idee?
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #1 : Noiembrie 06, 2011, 17:27:58 »

Avînd un algoritm care îți spune dacă poți respecta toate deadline-urile, poți căuta binar răspunsul.

Ai task-urile sortate după deadline (faci asta la început, în afara căutării binare). Dacă la fiecare pas i suma minutelor necesare efectuării primelor i taskuri este mai mică sau egală cu deadline-ul i e OK.

Ai complexitatea O(M log T) pe query, în total O(M^2 log T).
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #2 : Noiembrie 06, 2011, 21:19:17 »

Nu am inteles exact la ce ajuta sortarea, pentru ca raspunsul fiecarui query este dat de primele i taskuri in ordinea in care apar. Si inca un lucru, de ce ai acolo M queryuri?
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #3 : Noiembrie 06, 2011, 21:23:53 »

Nevermind, am citit prost enuntul.

Soluție bună:

Pentru un set de puncte fixat vrei să vezi care e răspunsul. Sortezi taskurile dupa D, faci sume partiale dupa M, si vezi diferenta maxima dintre SumaPartialaM[ i ] - D[ i ]. Pentru a rezolva problema dinamic poti folosi un aint.
« Ultima modificare: Noiembrie 06, 2011, 21:42:44 de către Andrei Grigorean » Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines