infoarena

infoarena - concursuri, probleme, evaluator, articole => .com 2012 => Subiect creat de: Eugenie Daniel Posdarascu din Martie 10, 2013, 13:54:51



Titlul: Arbpal
Scris de: Eugenie Daniel Posdarascu din Martie 10, 2013, 13:54:51
Aici se pot pune întrebări legate de problema Arbpal de la Runda 3 a concursului .com 2012

Timpul alocat întrebărilor este de 1 ora dupa inceperea concursului. Întrebările vor fi formulate astfel încât să se poată răspunde cu DA sau NU. În caz contrar sau în cazul în care întrebarea își găsește răspuns în enunțul problemei, răspunsul va fi FARA COMENTARII.


Titlul: Răspuns: Arbpal
Scris de: FMI Trifan Mircea Mihai din Martie 10, 2013, 14:38:02
In exemplu caracterul din nodul 1 nu trebuia sa fie 'a'?


Titlul: Răspuns: Arbpal
Scris de: Buleandra Cristian din Martie 10, 2013, 14:43:22
P(x,y) si P(y,x) sunt considerate doua perechi diferite?


Titlul: Răspuns: Arbpal
Scris de: Eugenie Daniel Posdarascu din Martie 10, 2013, 14:44:53
In exemplu caracterul din nodul 1 nu trebuia sa fie 'a'?

Nu pai altfel nu ar mai fi fost raspunsul 10.

P(x,y) si P(y,x) sunt considerate doua perechi diferite?

Da. Sunt diferite.


Titlul: Răspuns: Arbpal
Scris de: FMI Trifan Mircea Mihai din Martie 10, 2013, 14:49:25
Parametrii x si y pot fi si egali?


Titlul: Răspuns: Arbpal
Scris de: Edp100 din Martie 10, 2013, 14:52:44
Parametrii x si y pot fi si egali?
DA


Titlul: Răspuns: Arbpal
Scris de: Buleandra Cristian din Martie 10, 2013, 19:29:39
Eu la asta am facut LCA + memoizare, dar iese urat din timp. Banuiesc ca era LCA + dinamica, cum ati facut?


Titlul: Răspuns: Arbpal
Scris de: Tudor Tiplea din Martie 10, 2013, 19:34:13
Eu am facut un DF din fiecare nod S si calculam pentru fiecare nod i hash-ul stringului ce reprezinta lantul S->i si i->S. Daca cele 2 hash-uri erau egale, atunci aveam un palindrom. Problema era ca luam TLE caci faceam operatii modulo. Asa ca mi-am precalculat operatiile de modulo, si, ca prin minune, nu am scapat de TLE :) .


Titlul: Răspuns: Arbpal
Scris de: Pirtoaca George Sebastian din Martie 10, 2013, 19:38:10
Eu am facut un fel de dinamica pe arbore. Ideea de baza era ca P(x,y) este palindrom daca P(tata[ x ],tata[ y ]) este palindrom si c[ x ]=c[ y ], insa trebuia sa tratezi cazuri particulare(cand nodurile sunt in acelasi subarbore, cel determinat de nodul de pe nivelul mai mic).  :D


Titlul: Răspuns: Arbpal
Scris de: Petenchea Alexandru din Martie 10, 2013, 20:14:56
Chiar daca nu i-am dat de capat, mi se pare cea mai faina problema pe care am intalnit-o pana acum la vreun concurs :D . Tot respectul !


Titlul: Răspuns: Arbpal
Scris de: Eugenie Daniel Posdarascu din Martie 11, 2013, 11:51:24
Initial solutia era asa: din fiecare nod pornim un dfs (presupunem ca e centru palindromului) si construim trie-ul arborelui (sau tinem hash). Din pacate si cu trie si cu hash merge mai prost ca sursa mea de O(n^3 cu kill), desi daca te chinui mult iti intra in timp si cu hash. Solutia oficiala este: ganditiva la d[ i ][ j ] = 0/1 daca lantul de la i la j este palindrom. Da nu tinem dinamica si pur si simplu dintr-un palindrom ne extindem in altu cu un dfs. Asta este O(numarul de solutii) care e maxim N^2.