infoarena

infoarena - concursuri, probleme, evaluator, articole => CCEX 2009 => Subiect creat de: Marius Stroe din Iunie 06, 2009, 00:25:51



Titlul: Mugur
Scris de: Marius Stroe din Iunie 06, 2009, 00:25:51
Aici se pot pune întrebări legate de problema Mugur (http://infoarena.ro/problema/mugur) a concursului CCEX 2009.

Timpul alocat întrebărilor este de 1 oră. Î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 FĂRĂ COMENTARII.


Titlul: Răspuns: Mugur
Scris de: Marius Stroe din Iunie 06, 2009, 09:05:49
Timpul alocat întrebărilor a expirat.


Titlul: Răspuns: Mugur
Scris de: Andrei Misarca din Iunie 07, 2009, 11:04:15
As avea o intrebare, am generat numerele lu catalan, apoi din N am scazut K (parantezele care delimiteaza un mugure), iar apoi am facut o dinamica in care am cautat numarul de posibilitati de a pune N-K perechi de paranteze (asta cu ajutorul numerelor lu catalan), dar nu iau mai mult de 35. E busita ideea sau e de la implementare?


Titlul: Răspuns: Mugur
Scris de: Marius Stroe din Iunie 07, 2009, 11:28:20
Nu ştiu. Două inturi modulo 123457 înmulţite vor avea nevoie de long long. Ai avut grijă de asta?


Titlul: Răspuns: Mugur
Scris de: Andrei Misarca din Iunie 07, 2009, 11:30:01
Dap, mi-am definit tot long long, si asta ma cam depaseste, ca ideea mi se pare buna :)

Am descoperit hiba, nu prea merge generarea numerelor lui catalan modulo 123457. Imi puteti da o idee cum s-ar putea face asta? :D


Titlul: Răspuns: Mugur
Scris de: Paul-Dan Baltescu din Iunie 07, 2009, 12:04:36
Folosesti invers modular.


Titlul: Răspuns: Mugur
Scris de: Savin Tiberiu din Iunie 07, 2009, 14:46:58
Ca sa calculezi numarul de parantezari corecte cu N perechi de paranteze poti sa faci urmatoarea dinamica:

T[ i ] = suma( T[j - 1], T[i - j])  j:1->i.

De asemenea daca imi aduc eu bine aminte numerele lui Catalan parca erau o serie de combinari. Combinarile le poti calcula si fara invers modular.

C[ i ][j] = C[i - 1][j] + C[i - 1][j - 1];

Unde C[ i ][j] e combinari de i luate cate j.


Titlul: Răspuns: Mugur
Scris de: Andrei Misarca din Iunie 07, 2009, 21:05:40
Ca sa calculezi numarul de parantezari corecte cu N perechi de paranteze poti sa faci urmatoarea dinamica:
T[ i ] = suma( T[j - 1] * T[i - j])  j:1->i.

Asta chiar e o modalitate mai simpla de calculare a numerelor lui Catalan in cazul in care apare modulo. Pacat ca am pierdut 90 de puncte in concurs pe o chestie de asta, dar macar am invatat ceva din ea :)