Afişează mesaje
|
Pagini: 1 2 [3] 4 5
|
53
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 285 Geometry
|
: Octombrie 15, 2012, 17:28:06
|
Salut! Iau incorect pe primul test si nu ma prind de ce. Solutia mea e cam asa : iau fiecare pereche de 2 segmente si vad daca se intersecteaza; Verific daca doua segmente se intersecteaza astfel : iau un segment si vad daca punctele care determine celalalt segment se afla in semiplane opuse fata de segmentul ales.
L.E. : Mi-a iesit pana la urma.
|
|
|
56
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 994 Retea
|
: Septembrie 09, 2012, 11:44:06
|
Salut! Am complexitatea(M*K^2*logN) şi iau 40 de puncte cu tle. Iniţial mi s-a părut mult pentru 0.3 aşa că am încercat să optimizez soluţia dar nu am reuşit. Am citit soluţia şi spre surprinderea mea şi complexitatea oficială e la fel. Din ce cauză iau tle ? (Dijkstra l-am implementat cu priority_queue.) O fi de la evaluator sau de la mine ?!
|
|
|
57
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 343 Mesaj
|
: Septembrie 07, 2012, 18:44:28
|
Salut! Am încercat o soluţie în m*n*L; unde L = lungimea maximă a unui cuvânt; mai exact fac un dp[ i ] = numărul minim de caractere ce trebuie să le elimin astfel încât să pun un cuvânt care să nu treacă de poziţia i; practic pentru fiecare poziţie i încerc să pun un cuvânt j, care să nu depăşească poziţia i. Cu această soluţie iau 30 de puncte. Pe restul testelor iau incorect şi tle.
L. E. : Mi-a ieşit pana la urmă!
|
|
|
60
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 808 K1
|
: August 08, 2012, 14:35:07
|
Raspunsul corect e 39. Si ii iei asa : initial ai : 8 3 1 5 2. Prima lupta : iei al 3 lea luptator cu ultimul luptator => Cost = 1 + 2 = 3; Raman luptatorii : 8 3 5 3(asta ultimul e noul format) A 2-a : il iei pe al 2-lea si pe ultimul => Cost += 3 + 3 = 9; Raman luptatorii : 8 5 6; A 3-a : il iei pe al 2-lea si pe ultimul => Cost += 5 + 6 = 20; Raman luptatorii : 8 11; Ultima lupta : pe primul si pe al 2-lea(evident ) ) => Cost = 20 + 8 + 11 = 39; Ramane doar unul singur si ma opresc
|
|
|
61
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 294 Zeap
|
: August 07, 2012, 16:19:17
|
Fac mai multi arbori. In unul retin maximul , in unul minimul , in unul dif maxima , in unul dif min. Dif min este valoarea minima dintre: fiul stang , fiul drept , diferenta dintre maximul stang si maximul drept , diferenta dintre minimul stang si minimul drept. Cred ca mergea bine ( nu sunt sigur , dar cred ca de la implementare iau incorect ). Daca nu incearca pe alta idee. Succes. Cum adica doar crezi ca mergea? (din moment ce tu ai 100 de puncte ?) stardust : uite cum m-am gandit eu sa fac operatia Min-dif(la celelalte presupun ca te descurci) : Tin un set in care pun diferenta dintre 2 termeni consecutivi; acum trebuie sa fi atent(sa vezi cum modifici set-ul cu diferentele) cand elimini un element si cand introduci un element; cu aceasta idee iau 60 de pct : 2 tle-uri si 2 Killed by signal 11
|
|
|
63
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 611 Copaci 2
|
: August 02, 2012, 01:08:08
|
Salut! Am facut si eu 2 rezolvari : n * Hmax^2; iar a doua n * Hmax cu deque; cu ambele solutii iau incorect pe testul 3; (evident pe celelalte iau corect cu a 2 sursa si tle/mle cu prima) Ce are acest test mai special ?
L.E : Mi-a iesit pana la urma; se pare ca am avut o greasela stupida in cod (ma mir ca am luat asa multe puncte cu acea greseala)
|
|
|
70
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 108 Sediu
|
: Iulie 19, 2012, 14:59:46
|
Presupun ca ai facut solutia in n^2... Pt o(n) idea e sa faci o singura parcurgere df si sa reti cateva informatii despre fiecare nod. Iti alegi un nod(o radacina) si apoi faci un df din acel nod; In arborele df ti pentru fiecare nod cate noduri are in subarbore(fie vectorul a[]) si adancimea maxima de la nodul actual pana la o frunza(fie vectorul b[]). Raspunsul va fi minimul din b[]; doar ca dupa ce faci df-ul trebuie sa actualizezi anumite valori din b[] pentru ca tu in Df ai calculat adancimea maxima de la nod in jos dar poate fi si varianta sa fie in sus; si tot ce ramane de facut e sa actulizezi b[nod] = max(b[nod], n-a[nod]); avand n noduri si tu stiind ca in subarborele cu radacina nod ai a[nod] noduri atunci inseamna ca celalalt drum care exista si nu l-ai luat in considerare in parcurgerea Df va avea n-a[nod] noduri;
|
|
|
72
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 236 Biscuiti
|
: Iulie 15, 2012, 14:22:40
|
nu prea inteleg la ce te referi prin "trucul ala sa updatez doar cand e nevoie."; la aceasta problema ai nevoie de minimul pe un interval si apoi trebuie sa actulizezi eficient intervalul[1,min.poz](complexitatea e log n, dupa cum ai zis si tu) pentru a actualiza un interval in log n te folosesti de lazy propagation; ti 2 vectori unul Min[]=care iti zice minimul si un vector add[] care iti spune cu cat a fost actualizat intervalul curent pana in acest moment ; de fiecare data cand faci udpate pe un interval [x,y] ii dai functiei tale de update nu o pozitie(ca de obicei) ci un interval [x,y] ; si acum cand gasesti un interval(din arborele de intervale) care intra in [x,y] trebuie sa ii actualizezi Min[nod] si add[nod]; acum mai ramane ca atunci cand te duci in sus pe arbore si iei minimul dintre fi, acestui minim trebuie sa ii mai adaugi si add[nod](valoarea cu cat a fost actualizat acest interval); si ar cam trebui sa mearga
|
|
|
74
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 658 Siguranta Nationala
|
: Iulie 04, 2012, 15:15:14
|
Pentru informatician28, uite un test pe care sursa ta il pica : 7 4 1 3 1 6 3 7 5 7 sursa ta afiseaza 1, 0, 1, 1 ; iar raspunsul corect e : 1, 0, 1, 0 ;
|
|
|
|