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

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« : Decembrie 13, 2010, 00:40:02 »

Aici puteti discuta despre problema Knumere.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
spatarel
Strain
*

Karma: 31
Deconectat Deconectat

Mesaje: 37



Vezi Profilul WWW
« Răspunde #1 : Decembrie 15, 2010, 22:57:08 »

Am participat la concurs on-site si, apoi, am ascultat solutiile oficiale. Propun o solutie alternativa, cu care am obtinut punctaj maxim:

Se cauta binar solutia. In acest sens, trebuie implementata o functie prin care sa se verifice daca pentru un numar D, exista o subsecventa a sirului de intrare de lungime cel putin N - K, in care oricare doua elemente consecutive au diferenta <= D.

Astept pareri despre corectitudine, timpul de executie si dificultatea de implementare. Smile
Memorat

Atat am avut de spus
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #2 : Decembrie 16, 2010, 17:51:31 »

Banuiesc ca aceasta solutie nu ar trebui sa intre in timp. Smile Pentru ca se poate si mai bine de O(NlogN).  Smile
Memorat
spatarel
Strain
*

Karma: 31
Deconectat Deconectat

Mesaje: 37



Vezi Profilul WWW
« Răspunde #3 : Decembrie 16, 2010, 22:55:09 »

Solutia are o complexitate teoretica chiar mai proasta: O(N log D), unde D = 2*10^9, diferenta maxima dintre doua numere consecutive. Si totusi... Testul 10 - 640ms. Timpii de executie depind, in cazuri atat de fine, de complexitatea structurilor de date folosite si calitatea implementarii.
Memorat

Atat am avut de spus
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #4 : Februarie 27, 2012, 20:26:59 »

Am implementat solutia lui spatarel dar  i`au  90 de pct cu wa pe testul 2... Ma poate ajuta careva ?
Memorat
eudanip
Echipa infoarena
Nu mai tace
*****

Karma: 307
Deconectat Deconectat

Mesaje: 703



Vezi Profilul
« Răspunde #5 : Februarie 28, 2012, 08:13:20 »

Pai se poate cu o complexitate mai buna.

 Hint : deque  Smile
Memorat
CosminRusu
De-al casei
***

Karma: 77
Deconectat Deconectat

Mesaje: 104



Vezi Profilul
« Răspunde #6 : Iulie 03, 2013, 20:04:56 »

Buna.
Iau 90 de puncte cu WA pe primul test. Imi puteti da un exemplu asemanator cu acesta? Am implementat ideea cu deque-uri. Multumesc anticipat.
Memorat
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« Răspunde #7 : Septembrie 01, 2013, 00:17:41 »

Salut!
In caz ca te mai intereseaza gresesti cand scoti un element din deque( cand nu mai poate face parte din secventa ). Secventa fiind de lungime L-1 nu trebuie scos atunci cand
 
Cod:
if( i - dq.front() >= l )
            dq.pop_front();
ci atunci cand
Cod:
if( i - dq.front() >= l - 1 )
            dq.pop_front();
.

Cu aceasta modificare sursa de ia 100p. Bafta!

PS: Dupa parerea mea ar trebui sa modifici si in while deoarece nu are rost sa tin un element in deque daca cel pe care urmeaza sa il inserez este egal cu el.
Ma refer la
Cod:
v[ dq.back() ] < v[i]
care ar trebui sa fie
Cod:
v[ dq.back() ] <= v[i]
« Ultima modificare: Septembrie 01, 2013, 00:29:51 de către Alexandru Valeanu » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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