infoarena

infoarena - concursuri, probleme, evaluator, articole => Algoritmiada 2013 => Subiect creat de: Serban Andrei Stan din Februarie 24, 2013, 01:28:28



Titlul: Unicat
Scris de: Serban Andrei Stan din Februarie 24, 2013, 01:28:28
Aici se pot pune întrebări legate de problema Unicat de la Runda 3 a concursului Algoritmiada 2013.

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: Unicat
Scris de: Alex Velea din Februarie 24, 2013, 13:04:04
Poate sa imi spuna cineva de ce as putea lua KBS 6?
Nu am asserturi, si am verificat ca indicii sa fie in ce am initializat.

Pot lua pentru ca faceam .. ?
Citat
string a;
void solve( string T ){
...
}
int main(){
cin>>a;
solve(a);
}


Titlul: Răspuns: Unicat
Scris de: Dan H Alexandru din Februarie 24, 2013, 13:05:15
Cum ati facut-o ? Adica am avut o idee cu hash-uri care mergea in N^2.  :) Voi ?


Titlul: Răspuns: Unicat
Scris de: Murtaza Alexandru din Februarie 24, 2013, 13:08:41
Eu am tinut Trie in care adaug fiecare palindrom de lungime maxima pentru fiecare centru posibil in parte. Nu sunt sigur de complexitate, dar cred ca e O(N). Palindroamele le fac ca la problema PSCPLD. Iar in Trie tin doar a 2-a jumatate a palindromului.


Titlul: Răspuns: Unicat
Scris de: Panaete Adrian din Februarie 24, 2013, 13:12:19
Tot cu trie dar in O(N^2). Probabil prea mult :)


Titlul: Răspuns: Unicat
Scris de: Mugurel-Ionut Andreica din Februarie 24, 2013, 13:13:12
@Murtaza Alexandru: Si daca, de exemplu, ambele siruri contin 500.000 de 'a'-uri fiecare ?
In acest caz ai palindroame lungi de la fiecare centru posibil, iar suma lungimilor lor este O(N^2) (chiar daca in trie o sa ai doar O(N) noduri).


Titlul: Răspuns: Unicat
Scris de: Murtaza Alexandru din Februarie 24, 2013, 13:15:16
Corect  :oops:

Acum am realizat ca e O(N^2)


Titlul: Răspuns: Unicat
Scris de: Alex Velea din Februarie 24, 2013, 13:26:04
Si eu fac in principiu ca Rares ...
Cand fac PSCPLD, cand ma extind cu un caracter, pun palindromul acela in hash. Asta se face in o(1) dar trebuie precalculate in NlogN ..
Apoi sortez hashurile, si presupun in O(1) ca sunt egale  :rotfl:

A mai facut cineva asa?


Titlul: Răspuns: Unicat
Scris de: Radu-Andrei Szasz din Februarie 24, 2013, 14:42:49
Care este solutia oficiala la aceasta problema?


Titlul: Răspuns: Unicat
Scris de: Andrei Grigorean din Februarie 24, 2013, 14:50:28
Hint: Pentru un sir exista un numar liniar de palindroame distincte.


Titlul: Răspuns: Unicat
Scris de: Rares Buhai din Februarie 24, 2013, 16:04:08
Eu mi-am facut PSCPLD-ul, dupa care pentru fiecare pozitie puneam intr-un hash codul palindroamelor incepand cu cel mai mare (i - P[ i], i + P[ i]). Daca intalneam unul care era pus deja, ma opream (si cele mai mici ar fi fost puse). Astfel aveam maxim O(rezultat).
Am luat in concurs 40 din cauza codului hashului. L-am pus acum pe long long si am luat 100.


Titlul: Răspuns: Unicat
Scris de: Mihai Calancea din Februarie 24, 2013, 16:07:56
Da, cam iese cum zici tu :).