Nu aveti permisiuni pentru a descarca fisierul grader_test1.in
Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2020-10-02 01:07:16.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:brperm.in, brperm.outSursăRMI 2020 Ziua 1
AutorTamio-Vesa NakajimaAdăugată demihai50000Mihai-Cristian Popescu mihai50000
Timp execuţie pe test1 secLimită de memorie256000 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Brperm

Editorialul

SE DA UN ARBORE...

Poveste şi cerinţă...

Am considerat ca sunt date anumite queryuri in input, daca secventa cutare e sau nu br-palindrom. Desigur, putem schimba formatul asta in varianta originala, in caz ca devine inutila schimbarea.

Queryurile sunt doar pe lantul catre radacina - nu vrem lca-uri si alte nebunii

Date de intrare

Fişierul de intrare brperm.in contine pe primul rand numarul N de noduri.
Al doilea rand contine cate N - 1 numere, iar al i-lea este tatal nodului i in arbore (retineti ca nodul 0 este radacina). Se garanteaza ca tatal unui nod are indicele mai mic ca el.
Al treilea rand contine un sir de N - 1 caractere, din care al i-lea caracter este caracterul pe muchia dintre i si tatal sau.
Al patrulea rand contine valorile Q X1 Y1 a b c d. Q reprezinta numarul de query-uri.
Fie Ai al i-lea nod de query, si 2Bi a i-a lungime de query. Fie Ri raspunsul la cel de al i-lea query: 1 daca si numai daca lantul de la Ai in sus de lungime 2Bi este br-palindrom, 0 altfel. Acestea se calculeaza dupa formulele:
Xi+1 = (i + Xi + Ri) * a + b mod 1.000.000.007
Yi+1 = (i + Yi + Ri) * c + d mod 1.000.000.007
Ai = Xi mod N
Bi = Yi mod log2(lungimea lantului de la Ai la radacina)

Date de ieşire

În fişierul de ieşire brperm.out se afiseaza numerele XQ+1 YQ+1.

Restricţii

  • SIGMA = 26
  • ... ≤ ... ≤ ...
  • Subtask1 (10 puncte): O(Q * N * logN) && NU neaparat linie
  • Subtask2 (10 puncte): O(N * logN + Q * N) && NU neaparat linie
  • Subtask3 (10 puncte): O(N * logN + Q) && linie && SIGMA = 2 && biased random (comisia a ales, pt fiecare test, cate un numar real p intre 0 si 1 iar fiecare caracter este 'a' cu probabilitate p si 'b' cu probabilitate 1-p)
  • Subtask4 (30 puncte): O((N + Q) * logN * logN) sau O((N + Q) * sqrt(N + Q) + Q) (nu cunosc solutie, dar cine stie?) - anulat si inghitit de subtaskul urmator in caz ca nu dam queryuri
  • Subtask5 (10 puncte): O(N * logN * logN + Q) - acelasi lucru ca subtaskul urmator daca nu dam queryuri
  • Subtask6 (10 puncte): O((N + Q) * logN) - in caz ca exista
  • Subtask7 (20 puncte): O(N * logN + Q) - in caz ca exista, altfel punctele merg la ultimul subtask existent

Exemplu

brperm.inbrperm.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?