|
•xtreme77
Client obisnuit

Karma: 7
Deconectat
Mesaje: 69
|
 |
« Răspunde #1 : Iunie 08, 2014, 13:08:04 » |
|
O runda cu probleme foarte frumoase!Felicitari tuturor participantilor! 
|
|
|
Memorat
|
|
|
|
•Andrei1998
|
 |
« 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  pentru runda. Andrei
|
|
|
Memorat
|
|
|
|
•a_h1926
|
 |
« Răspunde #3 : Iunie 08, 2014, 13:18:31 » |
|
Solutia oficiala la Potriveala este O(N + M) si nu foloseste hash-uri.
|
|
|
Memorat
|
|
|
|
•AlexandruValeanu
|
 |
« 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
Mesaje: 59
|
 |
« 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
Mesaje: 69
|
 |
« 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
|
 |
« Răspunde #7 : Iunie 08, 2014, 13:28:11 » |
|
Brute force ia 70 la Potriveala  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
|
 |
« 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? 
|
|
|
Memorat
|
|
|
|
•MKLOL
Strain
Karma: 5
Deconectat
Mesaje: 25
|
 |
« Răspunde #9 : Iunie 08, 2014, 13:39:43 » |
|
Brute force ia 70 la Potriveala  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 
|
|
|
Memorat
|
|
|
|
•PlayLikeNeverB4
|
 |
« 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  Am trimis la disperare si se pare ca am avut noroc.
|
|
|
Memorat
|
|
|
|
•MKLOL
Strain
Karma: 5
Deconectat
Mesaje: 25
|
 |
« 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  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
|
 |
« 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
|
 |
« 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
|
 |
« 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 
|
|
|
Memorat
|
|
|
|
•paunmatei7
Strain
Karma: 28
Deconectat
Mesaje: 27
|
 |
« 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
Mesaje: 69
|
 |
« 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
Mesaje: 74
|
 |
« 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
|
|
|
|
|
•Kira96
Client obisnuit

Karma: 36
Deconectat
Mesaje: 69
|
 |
« 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
|
 |
« 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
Mesaje: 69
|
 |
« 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
|
 |
« 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
|
 |
« 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
|
 |
« Răspunde #24 : Iunie 08, 2014, 17:55:31 » |
|
Nu la asta ma refeream.  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. 
|
|
« Ultima modificare: Iulie 26, 2014, 12:32:47 de către Constantinescu Andrei Costin »
|
Memorat
|
|
|
|
|