Diferente pentru problema/fft intre reviziile #23 si #26

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="fft") ==
Dupa cum bine stiti, polinoamele sunt o parte cruciala a matematicii fara de care dezvoltarea, atat pe plan tehnologic, cat si pe plan social (daca nu am vorbi despre polinoame, atunci despre ce am mai vorbi?!), nu ar fi fost posibile. Dar mai intai, ce este cu adevarat un polinom? Un matematician adevarat o sa va spuna ca un polinom este o expresie care are in componenta sa o variabila, de regula notata cu $x$, un set de constante, numite coeficienti, si care admite drept operatii numai adunarea, scaderea, inmultirea si ridicarea la putere constanta, numar natural. Mai mult, v-ar putea spune ca, in general, un polinom definit pe o multime $M$ are urmatoarea forma: $P(x) = a[~0~] + a[~1~] * x + a[~2~] * x^2^ + ... + a[~n~] * x^n^$, unde $n$ este un numar natural, iar $a[~0~], a[~1~], a[~2~], ..., a[~n~]$ sunt constante si fac parte din $M$. Asta este complet neadevarat! Un polinom este, de fapt, o unealta diabolica cu ajutorul careia comisia poate tortura concurentii fara sa se chinuie prea tare. Daca va intrebati cum, este foarte simplu. Se iau doua polinoame (daca se poate sa aiba coeficientii luati de pe O.E.I.S., este cu atat mai bine) si se cere sa se inmulteasca intre ele in complexitate $O(n * log[~2~]n)$. Credeti ca asta nu este posibil? Ati fi surprinsi! Din fericire pentru voi, noi consideram ca ar fi prea demodat sa cerem aplicarea algoritmului Fast Fourier Transformation (a se vedea "Strada Cramei":https://infoarena.ro/problema/stradacramei). Asa ca, ne-am gandit sa mai aprofundam putin utilitatea acestori minuni revolutionare si am aflat ca le poti folosi pentru a transforma un sir de caractere, intr-un numar natural, numit cheie. Tot ce trebuie sa faci este sa iti alegi un numar natural $b$, un numar natural $m$, sa iti consideri drept $a[~i~]$ codul ASCII al caracterului aflat pe pozitia $i$ in sirul de caractere (indexat de la $0$) si sa calculezi $P(b) MOD m$. Pentru a nu va chinui prea tare, comisia va ofera atat sirul de caractere, cat si numerele $b$ si $m$, dar va cere in schimb sa raspundeti la $q$ intrebari de forma: Cate subsecvente de tip palindrom au lungimea cuprinsa intre $l[~1~]$ si $l[~2~]$ si cheia cuprinsa intre $m[~1~]$ si $m[~2~]$?
Dupa cum bine stiti, polinoamele sunt o parte cruciala a matematicii fara de care dezvoltarea, atat pe plan tehnologic, cat si pe plan social (daca nu am vorbi despre polinoame, atunci despre ce am mai vorbi?!), nu ar fi fost posibile. Dar mai intai, ce este cu adevarat un polinom? Un matematician adevarat o sa va spuna ca un polinom este o expresie care are in componenta sa o variabila, de regula notata cu $x$, un set de constante, numite coeficienti, si care admite drept operatii numai adunarea, scaderea, inmultirea si ridicarea la putere constanta, numar natural. Mai mult, v-ar putea spune ca, in general, un polinom definit pe o multime $M$ are urmatoarea forma: $P(x) = a[~0~] + a[~1~] * x + a[~2~] * x^2^ + ... + a[~n~] * x^n^$, unde $n$ este un numar natural, iar $a[~0~], a[~1~], a[~2~], ..., a[~n~]$ sunt constante si fac parte din $M$. Asta este complet neadevarat! Un polinom este, de fapt, o unealta diabolica cu ajutorul careia comisia poate tortura concurentii fara sa se chinuie prea tare. Daca va intrebati cum, este foarte simplu. Se iau doua polinoame (daca se poate sa aiba coeficientii luati de pe O.E.I.S., este cu atat mai bine) si se cere sa se inmulteasca intre ele in complexitate $O(n * log[~2~]n)$. Credeti ca asta nu este posibil? Ati fi surprinsi! Din fericire pentru voi, noi consideram ca ar fi prea demodat sa cerem aplicarea algoritmului Fast Fourier Transformation (a se vedea "Strada Cramei":https://infoarena.ro/problema/stradacramei). Asa ca, ne-am gandit sa mai aprofundam putin utilitatea acestori minuni revolutionare si am aflat ca le poti folosi pentru a transforma un sir de caractere, intr-un numar natural, numit cheie. Tot ce trebuie sa faci este sa iti alegi un numar natural $b$, un numar natural nenul $m$, sa iti consideri drept $a[~i~]$ codul ASCII al caracterului aflat pe pozitia $i$ in sirul de caractere (indexat de la $0$) si sa calculezi $P(b) MOD m$. Pentru a nu va chinui prea tare, comisia va ofera atat sirul de caractere, cat si numerele $b$ si $m$, dar va cere in schimb sa raspundeti la $q$ intrebari de forma: Cate subsecvente de tip palindrom au lungimea cuprinsa intre $l[~1~]$ si $l[~2~]$ si cheia cuprinsa intre $m[~1~]$ si $m[~2~]$?
h2. Date de intrare
* $1 ≤ n ≤ 200.000$
* $1 ≤ q ≤ 200.000$
* $0 ≤ b ≤ 1.000.000.000.000.000.000$
* $1 ≤ m ≤ 1.000.000.000.000.000.000$
* $0 ≤ $m[~1~]$ ≤ 1.000.000.000.000.000.000$
* $0 ≤ $m[~2~]$ ≤ 1.000.000.000.000.000.000$
* $0 ≤ b ≤ 10^18^$
* $1 ≤ m ≤ 10^18^$
* $0 ≤ $m[~1~]$ ≤ 10^18^$
* $0 ≤ $m[~2~]$ ≤ 10^18^$
* $0 ≤ $l[~1~]$ ≤ n$
* $0 ≤ $l[~2~]$ ≤ n$

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.