Pagini: 1 [2] 3 4   În jos
  Imprimă  
Ajutor Subiect: 258 Alpin  (Citit de 23779 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Protoman
Infoarena Monthly
De-al casei
*****

Karma: 119
Deconectat Deconectat

Mesaje: 128



Vezi Profilul
« Răspunde #25 : Iulie 17, 2007, 13:48:00 »

Hy,
   Am incercat sa fac problema cam in 3 moduri ...
   -Odata cu sortarea elem din matrice O(n^2log n) si am luat 70 de puncte: TLE pe ultimile 2 teste si non zero exit status pe al 4-lea. Raised eyebrow
   -Alta data am incercat sa caut elementul minim din matrice si sa-l expandez cu 2 cozi ... imi iesea din timp pe toate testele. Am micsorat cozile si am luat 40 de puncte TLE pe ultimele 5 si pe al 4-lea (iar).  Thumb down
   -A 3-a oara ( si cea mai buna ) am cautat elemntul minim si l-am expandat cu o singura coada. Am luat 90 de puncte cu timpi buni la ultimile teste dar iau "Killed by signal 11(SIGSEGV)." pe testul 4.   Fool
   Care ar fi cele mai particulare cazuri? Am incercat toate elementele diferite, parcurgerea in spirala , toate elementele egale... imi dadea bine la toate
   Any hint  Cry ?
Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #26 : Iulie 17, 2007, 14:24:36 »

Daca ti-ar da incorect ai putea vorbi de un caz particular. Nu ai incercat sa maresti coada?
Memorat

....staind....
Protoman
Infoarena Monthly
De-al casei
*****

Karma: 119
Deconectat Deconectat

Mesaje: 128



Vezi Profilul
« Răspunde #27 : Iulie 17, 2007, 14:42:13 »

Am incercat ...  Annoyed  oricum e totusi mai mare decat n^2 si sunt sigur ca nu bag de 2 ori aceleasi elemente. Ceea ce nu inteleg este cum de nici o metoda nu a trecut testul Cry .
Alte idei Sad ?
Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #28 : Iulie 17, 2007, 14:49:47 »

Pe prima pagina sunt hint-uri cum sa rezolvi corect problema Thumb up
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #29 : Iulie 17, 2007, 14:52:52 »

Am incercat ...  Annoyed  oricum e totusi mai mare decat n^2 si sunt sigur ca nu bag de 2 ori aceleasi elemente. Ceea ce nu inteleg este cum de nici o metoda nu a trecut testul Cry .
Alte idei Sad ?

Ia incearca ceva particular de genul:
Cod:
5
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25

Raspunsul corect e 25. Eventual fa un debug sa vezi daca programul functioneaza corect si ar trebui sa descoperi bugul. Rolling Eyes
« Ultima modificare: Iulie 17, 2007, 14:54:27 de către Filip Cristian Buruiana » Memorat
Protoman
Infoarena Monthly
De-al casei
*****

Karma: 119
Deconectat Deconectat

Mesaje: 128



Vezi Profilul
« Răspunde #30 : Iulie 17, 2007, 15:10:06 »

Cod:
25
1 1
1 2
1 3
1 4
1 5
2 5
2 4
2 3
2 2
2 1
3 1
3 2
3 3
3 4
3 5
4 5
4 4
4 3
4 2
4 1
5 1
5 2
5 3
5 4
5 5
se pare ca imi da bine... am luat cu debug sa vad unde ar putea sa sara din dimensiunile vectorului sau ceva asemanator dar nu vad niciun bug Sad .
Algortimul meu e bun totusi... ia 90 de puncte intrand lejer in timp ...
are ceva special testul 4?...adica...am TLE pe el, restu imi intra lejer in timp...dar pe asta iau TLE...si vad ca altii scot 0.15s pe el...
am vazut ca au avut si altii "probleme" la testul acesta si inainte... voi mai incerca sa schimb dimensiunile ... Mersi Smile

OK. Asa voi face! Wink
« Ultima modificare: Iulie 17, 2007, 15:34:26 de către Purice Andrei » Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #31 : Iulie 17, 2007, 15:18:02 »

Testul 4 are structura similara cu cel care ti l-am dat eu, dar are dimensiuni mai mari... In plus, incearca sa testezi pe Linux pentru ca pe Windows comportamentul este imprevizibil.
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #32 : Iulie 18, 2007, 20:30:59 »

Mi-ati putea explica mai exact un pic cum trebuie folosita memoizarea la problema asta? Eu am o matrice b, unde b[ i][j] = lungimea maxima pana in punctul [i,j]... si calculez matricea asta recursiv, dar iese din timp pe testul 4. Pe un test cu structura celui dat de filipb, se fac intr-adevar foarte multe apeluri recursive, mult mai multe decat n^2.

Stiu ca memoizarea se poate folosi in calcularea functiei fibonacci, de exemplu, pentru a evita recalcularea de mai multe ori a aceleiasi valori in apeluri recursive. Aici insa eu nu vad cum m-as putea folosi de tehnica asta...
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #33 : Iulie 18, 2007, 21:45:45 »

Fie M[i, j] lungimea maxima a unui traseu care se termina in (i, j). Altitudinea maxima e 16 384. De aceea putem itera fiecare altitudine h de la 1 la 16 384 si sa calculam valorile M[i, j] pentru toate zonele (i j) care au altitudinea h. Astfel, cand suntem la altitudinea h, avem precalculate toate zonele care au altitudinile 1, 2, ... h-1. Un pseudocod arata cam asa:

Cod:

pentru h de la 1 la ALTITUDINE_MAXIMA
          pentru toate casutele (i j) cu altitudinea h
                    M[i][j] = maxim(M[sx][sy]) + 1, (sx sy) vecin cu (i j) si altitudinea din (sx sy) < altitudinea din (i j)

Trebuie sa pui conditia "altitudinea din (sx sy) < altitudinea din (i j)" pentru a evita egalitatea inaltimii din (sx sy) cu cea din (i j). In plus, pentru a extrage toate casutele (i j) cu altitudinea h poti folosi liste.

Cam asa peacefingers
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #34 : Iulie 18, 2007, 21:51:02 »

Poti sa ignori faptul ca ai o limita superioara pentru inaltimi.

Tii o matrice best[i, j] - lungimea maxima a unui drum care se termina in pozitia (i, j) si iti construiesti o functie recursiva cu doi parametri, sa ii spunem f(i, j), care iti calculeaza best[i, j] (daca nu e calculata aceasta valoare deja) si o returneaza.

Functia ar fi cam asa:
Cod:
function f(int i, int j)
{
    daca best[i][j] > 0, returneaza best[i][j];

    ptr cei 4 vecini ai lui (i, j)
        daca Inaltime(vecin) < Inaltime( (i, j) ) si f(vecin) > best[i][j]
             best[i][j] = f(vecin);
    best[i][j] += 1;

    returneaza best[i][j];
}
« Ultima modificare: Iulie 18, 2007, 21:55:43 de către Andrei Grigorean » Memorat

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

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #35 : Iulie 18, 2007, 21:53:34 »

Da, memoizare recursiva Very Happy. La mine era iterativ.
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #36 : Iulie 18, 2007, 22:25:55 »

Cred ca am inteles acuma despre ce-i vorba, sper sa ma descurc mai departe.

Multumesc! Smile

Dap, a mers de 100! Mersi inca o data, nu-mi dadeam seama cum sa aplic memoizarea aici...  Yahoo!
« Ultima modificare: Iulie 18, 2007, 22:31:23 de către Ionescu Vlad » Memorat
Robytzza
De-al casei
***

Karma: -49
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #37 : Februarie 01, 2008, 15:34:51 »

am si eu o intrebare de ce iau KBS 11 pe testele 3,4 ?? folosesc 2 matrici,in una din ele pe (i,j) pastrez numarul maxim pe pasi cu care port sa ajung acolo si folosesc 2 cozi de 1000000 .In program ma mai intreb , daca cumva depasesc coarda ;daca da,pun elementele la inceputul corzi... Sad  sad de ce iau KBS??
« Ultima modificare: Februarie 02, 2008, 10:58:38 de către Ionescu Robert Marius » Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #38 : Februarie 01, 2008, 21:23:12 »

Probabil ca ai o greseala undeva in program din moment ce nu iei punctaj maxim pe toate celelalte teste. Vezi daca faci reconstituire bine.

Apropo, incearca sa scrii corect. E foarte obositor sa-ti citeasca cineva posturile.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Robytzza
De-al casei
***

Karma: -49
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #39 : Februarie 05, 2008, 21:04:32 »

cat va da pe testul asta:
5
1 1 1 2 3
3 1 3 3 3
1 2 3 4 4
5 6 6 6 6
1 1 1 1 1


gata am rezolvat problema care o aveam la reconstituire ,insa tot mai am 2 KBS Sad

de ce iau KBS?? am declarate 2 matrici de [1030][1030], aici nu are cum  sa depaseasca si 2 cozi de 1000000 circulare.Si nici macar nu merg pana la sfarsitul cozii, cand ajung la 999990 o iau de la capat ..nu vad care e problema  Sad
« Ultima modificare: Februarie 05, 2008, 21:22:26 de către Ionescu Robert Marius » Memorat
Tabara
Nu mai tace
*****

Karma: 20
Deconectat Deconectat

Mesaje: 216



Vezi Profilul
« Răspunde #40 : Februarie 05, 2008, 23:18:11 »

cat va da pe testul asta:
5
1 1 1 2 3
3 1 3 3 3
1 2 3 4 4
5 6 6 6 6
1 1 1 1 1
Cu sursa de 100.
Cod:
5
1 3
1 4
2 4
3 4
4 4

Memorat
Robytzza
De-al casei
***

Karma: -49
Deconectat Deconectat

Mesaje: 129



Vezi Profilul
« Răspunde #41 : Februarie 06, 2008, 08:59:24 »

ms  mi-am dat seama unde greseam  Very Happy
Memorat
andrei-alpha
Client obisnuit
**

Karma: 103
Deconectat Deconectat

Mesaje: 91



Vezi Profilul
« Răspunde #42 : Septembrie 27, 2008, 10:45:03 »

Are cineva idee dc iau KBS daca declar matricea care o folosesc doar pentru a retine inaltimile , cu short int in loc de int . Confused
.. (cu int iau suta , cu short 90 cu KBS)
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #43 : Septembrie 27, 2008, 11:32:05 »

inaltimea minima e 0, sau 1?
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #44 : Septembrie 29, 2008, 22:13:14 »

Am o intrebare... cum mai pot optimiza pt ca am facut in O(N^2 + Hmax), da' iau TLE pe ultimu' test.   Fool
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #45 : Septembrie 29, 2008, 23:03:04 »

Eu am parsat citirea sa intre si ultimul test.  Embarassed
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #46 : Octombrie 01, 2008, 22:56:55 »

Mersi fain... asa mi-a intrat si mie ultimu' test Smile
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #47 : Octombrie 01, 2008, 23:01:03 »

Cu memoizare + citire parsata s'a luat 100 cu timpi < 300ms.
Memorat
cipri_tom
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 12



Vezi Profilul
« Răspunde #48 : Februarie 17, 2010, 16:15:44 »

in caz ca se mai uita cineva pe aici... ce e aceea parsare? si, ce are asa de special testul 4? daca mai stie cumva careva problema...
trimiteti-mi PM daca raspundeti. Multumesc
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #49 : Februarie 17, 2010, 16:23:26 »

Parsarea este citirea unui string si apoi transformarea lui in numar.
Memorat
Pagini: 1 [2] 3 4   În sus
  Imprimă  
 
Schimbă forumul:  

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