Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: Feedback Runda 3  (Citit de 13648 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
a_h1926
Echipa infoarena
Nu mai tace
*****

Karma: 317
Deconectat Deconectat

Mesaje: 385



Vezi Profilul
« : Iunie 08, 2014, 13:03:12 »

Runda 3 tocmai s-a încheiat. Felicitări câștigătorilor! Așteptăm feedback-ul și părerile voastre.
Memorat
xtreme77
Client obisnuit
**

Karma: 7
Deconectat Deconectat

Mesaje: 69



Vezi Profilul
« Răspunde #1 : Iunie 08, 2014, 13:08:04 »

O runda cu probleme foarte frumoase!Felicitari tuturor participantilor!  Very Happy
Memorat
Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #2 : Iunie 08, 2014, 13:15:32 »

Runda mi s-a parut interesanta. Problemele, mai grele decat de obicei au fost probabil menite sa departajeze participantii pentru runda finala. Limitele au fost cam mari pentru gustul meu (adica nu stiam daca o sa-mi intre nici una dintre probleme, caci stiam ca set-ul e O(log) cu o constanta de ~4). La problema cu subsecventa comuna solutia oficiala e tot hash? Caci vad ca nu mi-a intrat in timp pe 2 teste. Ar mai merge marita limita de timp putin la problema aia. Problema reborn nu am reusit sa o finalizez (nici macar brutul de ordin 2 (adica inbunatatit nitel)), dar mi s-a parut o problema grea de departajare (spre deosebire de celelalte nu avea limitele mari, ci era greu de bagat si greu de vizualizat). Oricum  Thumb up pentru runda.
Andrei
Memorat
a_h1926
Echipa infoarena
Nu mai tace
*****

Karma: 317
Deconectat Deconectat

Mesaje: 385



Vezi Profilul
« Răspunde #3 : Iunie 08, 2014, 13:18:31 »

Solutia oficiala la Potriveala este O(N + M) si nu foloseste hash-uri.
Memorat
AlexandruValeanu
Vorbaret
****

Karma: 29
Deconectat Deconectat

Mesaje: 167



Vezi Profilul
« Răspunde #4 : Iunie 08, 2014, 13:23:53 »

Foarte frumoase problemele, o runda reusita dupa parerea mea. As fi si eu curios de ideea de rezolvare de la Reborn pana apare articolul cu solutii. Felicitari castigatorilor!
Memorat
Impaler_009
Client obisnuit
**

Karma: 23
Deconectat Deconectat

Mesaje: 59



Vezi Profilul
« Răspunde #5 : Iunie 08, 2014, 13:25:17 »

Problemele au fost reusite si variate. A meritat asteptarea. Cand se va anunta cati vor merge mai departe la fiecare grupa de varsta ?
Memorat
Kira96
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 69



Vezi Profilul
« Răspunde #6 : Iunie 08, 2014, 13:25:58 »

Felicitari pentru runda! Care e complexitatea oficiala la Reborn? Ca eu am facut (N+Q)sqrt(N) si a intrat lejer, desi stiu ca se poate si (N+Q)log(N). Pe langa asta, ne puteti oferi detalii cu privire la calificarea la runda finala?
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #7 : Iunie 08, 2014, 13:28:11 »

Brute force ia 70 la Potriveala Smile

Foarte frumoase problemele, o runda reusita dupa parerea mea. As fi si eu curios de ideea de rezolvare de la Reborn pana apare articolul cu solutii. Felicitari castigatorilor!
Dinamica de la rmq ca sa afli cat poti merge la dreapta cu 2^k arme. Apoi cauti binar numarul minim de arme.
Memorat
Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #8 : Iunie 08, 2014, 13:35:26 »

George, ce magie de optimizare ai facut sa-ti mearga de 70 cu brute, eu am luat 70 cu O(n+m) cu hash-uri?  Think
Memorat
MKLOL
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 25



Vezi Profilul
« Răspunde #9 : Iunie 08, 2014, 13:39:43 »

Brute force ia 70 la Potriveala Smile

Foarte frumoase problemele, o runda reusita dupa parerea mea. As fi si eu curios de ideea de rezolvare de la Reborn pana apare articolul cu solutii. Felicitari castigatorilor!
Dinamica de la rmq ca sa afli cat poti merge la dreapta cu 2^k arme. Apoi cauti binar numarul minim de arme.
Care brut ia 70?

Anyway frumoasa runda Smile
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #10 : Iunie 08, 2014, 13:41:34 »

Am luat toate pozitiile pentru care A[i] == B[0] si am verificat cat pot merge in stanga si in dreapta lor  Cool Am trimis la disperare si se pare ca am avut noroc.
Memorat
MKLOL
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 25



Vezi Profilul
« Răspunde #11 : Iunie 08, 2014, 13:48:21 »

Am luat toate pozitiile pentru care A[i] == B[0] si am verificat cat pot merge in stanga si in dreapta lor  Cool Am trimis la disperare si se pare ca am avut noroc.
Eu bagasem NlogN dar probabil cu constanta prea mare (60 de puncte)
Memorat
a_h1926
Echipa infoarena
Nu mai tace
*****

Karma: 317
Deconectat Deconectat

Mesaje: 385



Vezi Profilul
« Răspunde #12 : Iunie 08, 2014, 14:43:22 »

Inainte sa apara articolul cu solutii, voi posta aici o scurta descriere a acestora:

Sliding Window
Parcurgem numerele si retinem ultimele D + 1 intr-un multiset. Cand inseram o valoare noua, cautam care e cea mai mare valoare mai mica sau egala cu ea si cea mai mica valoare mai mare ca ea. Astfel, putem actualiza raspunsul la fiecare inserare.
Complexitatea este O(N * logD).

Progresii2
Putem numara usor progresiile cu o ratie R fixata, intrucat avand primul termen fixat, restul termenilor sunt unic determinati. Astfel, pentru a determina numarul tuturor progresiilor, trebuie sa calculam suma expresiilor obtinute si o prelucrare atenta a termenilor duce la o formula ce poate fi calculata in timp constant.
Complexitatea este O(T).

Perioada2
O observatie esentiala este aceea ca orice perioada a sirului este formata prin concatenarea celei mai mici perioade a sirului. Astfel, problema se rezuma la a determina cea mai scurta perioada (se poate folosi KMP) si a vedea cati multipli ai lungimii perioadei sunt divizori ai lungimii sirului.
Complexitatea este O(N).

Reborn
Putem utiliza o structura de date (de exemplu, arbore de intervale sau set) pentru a determina pentru fiecare casa care e cea mai din dreapta pozitie unde poate fi reinviat Tsuna folosind o singura arma. Apoi, putem folosi o dinamica de tip RMQ si sa cautam binar raspunsul la fiecare query.
Complexitatea este O(N * logN + Q * logN).

Potriveala
Restrictia esentiala care permite rezolvarea problemei in timp liniar este faptul ca raspunsul este cel putin M. Astfel, subsecventa comuna de lungime maxima va arata astfel: (sufix al lui B) + (B + B + B + ... + B) (de K >= 0 ori) + (prefix al lui B). Pentru a nu avea probleme cu periodicitatea, putem sa concatenam sirul B la el insusi, pana cand lungimea acestuia devine cel putin egala cu lungimea lui A. Astfel, ramane de calculat cel mai lung prefix comun pentru noul sir B si fiecare pozitie din A, respectiv, cel mai lung sufix comun pentru noul sir B si fiecare pozitie din A. Acest lucru se poate realiza folosind Z-Algorithm.
Complexitatea este O(N + M).

Marsmusic
Solutia oficiala este o dinamica de tip rucsac care foloseste timp O(N * M^2) si memorie O(N * M).
Vom incerca sa calculam DP[time] = probabilitatea ca o melodie oarecare sa inceapa la momentul time. Pentru aceasta, vom folosi o dinamica auxiliara, DP2[n][count][time] = probabilitatea ca din primele n melodii, o melodie oarecare sa inceapa la momentul t, stiind ca au fost difuzate exact count melodii inaintea ei. In recurenta trebuie analizate doua cazuri: melodia n va fi difuzata dupa cele count melodii (si astfel DP2[n][count][time] depinde de DP2[n - 1][count][time] cu probabilitate (n - count) / n), sau va fi difuzata inaintea lor (si DP2[n][count][time] depinde de DP2[n - 1][count - 1][time - Durata[n]] cu probabilitate count / n).
Acum vom incerca sa determinam pentru fiecare melodie timpul mediu de intersectie pe cele doua posturi utilizand dinamica mentionata anterior (din care vom "scoate" melodia curenta, intrucat aceasta nu poate fi folosita) si sume partiale.
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #13 : Iunie 08, 2014, 15:07:42 »

Marsmusic
...
Acum vom incerca sa determinam pentru fiecare melodie timpul mediu de intersectie pe cele doua posturi utilizand dinamica mentionata anterior (din care vom "scoate" melodia curenta, intrucat aceasta nu poate fi folosita) si sume partiale.
Asa am facut si eu, doar ca nu am stiut cum sa "scot" melodia curenta. Deci, am refacut dinamica pentru fiecare melodie si a devenit N * M^3. Poti detalia?
Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 342
Deconectat Deconectat

Mesaje: 819



Vezi Profilul
« Răspunde #14 : Iunie 08, 2014, 15:34:22 »

In loc sa refaci dinamica de fiecare data poti sa faci o singura dinamica la inceput (cu toate M) si la fiecare pas sa incerci sa obtii dinamica fara un element din aceasta. E un fel de rucsac inapoi Smile
Memorat
paunmatei7
Strain
*

Karma: 28
Deconectat Deconectat

Mesaje: 27



Vezi Profilul
« Răspunde #15 : Iunie 08, 2014, 15:52:07 »

Runda a fost interesanta. Eu a problema "potrivireala" am facut pur si simplu un KMP si verifcam care este cea mai lunga subsecventa intreaga si dupa vedeam cu cat te extinzi in stanga si in dreapta. Complexitatea este tot O(N + M) amortizat. La problema "sliding windows" am facut doar un set cu lower_bound si aparent am luat 100(prima data am luat 100 dupa am crezut ca nu intra in timp fara parsare si am luat MLE). La problema "reborn" am incercat sa fac un fel de brut cu cautare binara dar nu a mers si inca sunt curios de ce nu merge ca iau TLE pe toate testele. Felicitari comisiei pentru aceasta runda!
Memorat
Kira96
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 69



Vezi Profilul
« Răspunde #16 : Iunie 08, 2014, 16:37:27 »

Am si eu o mica sesizare de facut.La problema potriveala unele surse de 100 pica pe urmatorul test:

BCABCABC
ABCABC

Un exemplu ar fi aceasta sursa, desi nu stiu daca este singura
http://www.infoarena.ro/job_detail/1195730
Memorat
Mihai22e
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #17 : Iunie 08, 2014, 16:57:29 »

Am si eu o mica sesizare de facut.La problema potriveala unele surse de 100 pica pe urmatorul test:

BCABCABC
ABCABC

Un exemplu ar fi aceasta sursa, desi nu stiu daca este singura
http://www.infoarena.ro/job_detail/1195730

"Fie un sir de caractere simplu A de N caractere si unul periodic si infinit B cu perioada de M caractere."

Sirul din testul tau are perioada M / 2, nu M.
Memorat
Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #18 : Iunie 08, 2014, 17:01:24 »

Citez din pagina cu intrebari destinata problemei "potriveala" (http://www.infoarena.ro/forum/index.php?topic=9987.0) intrebarea:
Citat
Se garanteaza ca al doilea sir din input este cea mai mica perioada a sirului B, nu una oarecare?
si raspunsul:
Citat
NU
Memorat
Kira96
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 69



Vezi Profilul
« Răspunde #19 : Iunie 08, 2014, 17:10:45 »

De asemenea, sursa de 100 a lui Matei Paun din concurs pica pe testul:

BCAB
ABC

In fine nu vreau sa zic ca au fost teste gresite, ci doar ca unele cazuri nu au fost tratate, cazuri care nu sunt chiar asa evidente ce-i drept...
Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 342
Deconectat Deconectat

Mesaje: 819



Vezi Profilul
« Răspunde #20 : Iunie 08, 2014, 17:31:45 »

Ca intotdeauna, nu ne putem astepta la orice greseli din partea participantilor. Din pacate au intrat solutii de 100 la mai multe probleme, solutii care nu erau chiar de 100.

Mai avem si problema in comisie ca nu putem face optimizari magice si sa ne bazam ca veti face si voi asta, desi ar reduce timpii de 4-5 ori pe cand participantii le pot folosi astfel incat sa le intre solutii cu complexitate mai proasta (nu ma refer la problema potriveala).
 Testele au fost facute in principiu sa pice KMP-ul si alte bulaneli (de acolo toate punctajele de 70 de puncte).
Memorat
Kira96
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 69



Vezi Profilul
« Răspunde #21 : Iunie 08, 2014, 17:39:07 »

Da,sunt de acord cu ce zici.Eu nu zic ca ar trebui modificate testele sau ceva, mai mult as vrea sa vada o parte din cei ce au luat 100 ca solutia lor nu e tocmai legit.
Memorat
Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #22 : Iunie 08, 2014, 17:42:22 »

Nu chiar toate solutiile de 70p sunt bulaneli. Unele sunt doar mai proaste din punctul de vedere al constantei (hash-uri).
« Ultima modificare: Iunie 08, 2014, 18:01:20 de către Constantinescu Andrei Costin » Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 342
Deconectat Deconectat

Mesaje: 819



Vezi Profilul
« Răspunde #23 : Iunie 08, 2014, 17:43:22 »

Total de acord. Daca ar fi mai mult timp poate ar trebui sa facem o arhiva cu problemele corectate, adica:

1) Optimizat pe cat posibil, parsare tot, despre care se spune in enunt pentru ca nu asta sa conteze ci complexitatea
2) Mult mai multe teste si grupate, sa fie 0 sau 100.
Memorat
Andrei1998
De-al casei
***

Karma: 26
Deconectat Deconectat

Mesaje: 112



Vezi Profilul
« Răspunde #24 : Iunie 08, 2014, 17:55:31 »

Nu la asta ma refeream. peacefingers Eu voiam doar sa subliniez faptul ca nu toate solutiile care au luat 70 sunt bulaneli, unele sunt doar putin mai incete din cauza constantei. Thumb up
« Ultima modificare: Iulie 26, 2014, 12:32:47 de către Constantinescu Andrei Costin » Memorat
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

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