infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Adrian Diaconu din Aprilie 24, 2007, 07:39:05



Titlul: 409 Sotron
Scris de: Adrian Diaconu din Aprilie 24, 2007, 07:39:05
Aici puteţi discuta despre problema Sotron (http://infoarena.ro/problema/sotron).


Titlul: Răspuns: 409 Sotron
Scris de: Florian Marcu din Aprilie 24, 2007, 19:56:41
Nu stiu de ce, dar iau 70 de puncte, cu WA pe trei teste!! Nu vad de ce se intampla lucrul asta. Adik, dupa parerea mea este imposibil sa existe cazuri particulare la o problema ca asta!!! Are cineva vreo idee?  :-s


Titlul: Răspuns: 409 Sotron
Scris de: Bondane Cosmin din Aprilie 24, 2007, 20:00:06
Maximul poate fi si negativ, probabil aici gresesti.


Titlul: Răspuns: 409 Sotron
Scris de: Florian Marcu din Aprilie 24, 2007, 20:09:03
Nu...initializez maximul cu  - MALONG (minus MAXLONG) (lucrez in c++)... Imi scapa ceva..dar nu `mi dau seama in niciun fel... ](*,)


Titlul: Răspuns: 409 Sotron
Scris de: Tabara Mihai din Aprilie 25, 2007, 17:29:40
 :-k iau 90.
WA pe testul 8.Mi-am verificat sursa cu testele oficiale si acela e intr-adevar singurul test pe care nu merge.Nu inteleg totusi de ce se intampla asta.Am verificat drumul pe exemple mai mari si merge prin matrice bine.Nu imi dau seama ce ar puteas fi gresit.... :oops:

 ](*,)

Am initializat maximul cu (-1)*(2<<31 ), deci nu asta ar fi problema.[cel putin nu cred].

[Later Edit] Nevermind...am luat 100  :) . Uitasem sa tratez separat cand n-ul este par si impar. :aha:


Titlul: Răspuns: 409 Sotron
Scris de: Bivol Mihai din Aprilie 27, 2007, 21:14:25
ce testezi separat ca nu am inteles ce ai vrut sa zici, eu tot 90 de puncte iau, la oni am luat 50 ](*,) ](*,) , (am facut cu o matrice in care tineam maximu (b[i+1][j]+ a[j] , a[ i ][j]) sau (b[j-1]+ a[j] , a[ i] [j]) - depinde de paritatea liniei- si afisam maximu din b matricea b)


Titlul: Răspuns: 409 Sotron
Scris de: Tabara Mihai din Aprilie 27, 2007, 21:30:08
ce testezi separat ca nu am inteles ce ai vrut sa zici, eu tot 90 de puncte iau, la oni am luat 50 ](*,) ](*,) , (am facut cu o matrice in care tineam maximu (b[i+1][j]+ a[j] , a[ i ][j]) sau (b[j-1]+ a[j] , a[ i] [j]) - depinde de paritatea liniei- si afisam maximu din b matricea b)
Poi eu nu tratam cazul in care n este par.
Cand n este impar, porneam din fiecare casuta albastra de pe prima coloana si faceam drumul ei firesc, ( si calculam secventa de suma maxima ).Apoi de pe fiecare casuta alba de pe ultima linie porneam iarasi drumul firesc ( si din nou secventa de suma maxima ). Astfel alegeam maximul dintre toate secventele si luam 90.Problema e ca uitasem ca n poate fi si par, astfel ca ultima linia incepea cu o casuta alba.Deci am facut acelasi algoritm cu pornire din casutele albastre de pe prima coloana si ulterior casutele albe *( incepand cu prima de pe ultima linie ) ai am luat 100.
Ar mai fi o observatie.Era un test printre cele oficiale pe care nu il luam pentru ca secventa de suma maxima era chiar un element al matricei ( unul singur ) si eu nu verificam la initializarea in dinamica de secventa de suma maxima daca maximul putea fi chiar unul dintre elemente.

Sper sa iti iasa!  :thumbup:


Titlul: Răspuns: 409 Sotron
Scris de: Florian Marcu din Aprilie 28, 2007, 13:10:37
Eu am facut putin mai diferit...Pt fiecare element al matricii urmam drumul firesc pana ma opream ajungand la prima linie sau la ultima coloana, si calculam suma tuturor elemntelor prin care treceam, comparand la fiecare pas cu suma maxima obinuta pana atunci. Insa iau doar 70 de puncte..nu vad unde as putea gresi... :-k


Titlul: Răspuns: 409 Sotron
Scris de: Ionescu Victor Cristian din August 20, 2007, 20:25:48
si eu iau 70 de puncte pe o idee pe care am luat 100 la byNET. are careva vreo sugestie?  ](*,)


Titlul: Răspuns: 409 Sotron
Scris de: Farcasanu Alexandru Ciprian din Aprilie 10, 2008, 21:23:55
Nu stiu daca ai rezolvat-o intre timp dar uite o idee: i-ati matricea b(i)(j)=suma maxima care se poate obtine pornind de pe pozitia (i,j)


Titlul: Răspuns: 409 Sotron
Scris de: Andrei Misarca din Aprilie 10, 2008, 21:49:34
ia-ti matricea b(i)(j)=suma maxima care se poate obtine pornind de pe pozitia (i,j)

Intra in n^2 asa?


Titlul: Răspuns: 409 Sotron
Scris de: Bogdan-Alexandru Stoica din Aprilie 12, 2008, 09:08:40
matricea respectiva se calculeaza in O(n^3).


Titlul: Răspuns: 409 Sotron
Scris de: Andrei Misarca din Aprilie 13, 2008, 12:20:38
Si intra in timp cu O(n^3) ?


Titlul: Răspuns: 409 Sotron
Scris de: Bogdan-Alexandru Stoica din Aprilie 13, 2008, 12:45:35
da, daca tii cont de o mica observatie.


Titlul: Răspuns: 409 Sotron
Scris de: Andrei Misarca din Aprilie 13, 2008, 12:51:08
Dar o dinamica in n^2 e mai eficienta si e relativ simplu de implementat


Titlul: Răspuns: 409 Sotron
Scris de: Bogdan-Alexandru Stoica din Aprilie 13, 2008, 12:52:51
nu te contrazic. daca ai scos n^2 cu atat mai bine. eu am calculat in n^3 matricea respectiva. :)


Titlul: Răspuns: 409 Sotron
Scris de: UAIC.VlasCatalin din August 17, 2011, 18:49:35
Stie cineva ce are special testul 5, iau WA si nu inteleg care ar fi problema, pot sa existe ceva cazuri speciale la problema asta ?  :-s :-k