|
Titlul: Ubercool Scris de: Serban Andrei Stan din Noiembrie 17, 2012, 01:26:40 Aici puteti pune intrebari la problema Ubercool (http://infoarena.ro/problema/ubercool) de la concursul FMI No Stress 3 (http://infoarena.ro/fmi-no-stress-3).
Titlul: Răspuns: Ubercool Scris de: zzz zzz din Noiembrie 17, 2012, 13:48:25 de ce imi afiseaza Killed by signal 8(SIGFPE).
desi nu am depasit memoria si nu citesc numere prea mari Timpul de executie este 0 pt fiecare test Titlul: Răspuns: Ubercool Scris de: Andrei Grigorean din Noiembrie 17, 2012, 13:56:38 Cam jeg cu erorile de precizie. Mergea precizata in enunt precizia care trebuie folosita.
Titlul: Răspuns: Ubercool Scris de: Dragos Oprica din Noiembrie 17, 2012, 14:02:02 Cam jeg cu erorile de precizie. Mergea precizata in enunt precizia care trebuie folosita. Merge problema si folosind long long, fara a avea nevoie de precizie. Titlul: Răspuns: Ubercool Scris de: Mihai Ionut Enache din Noiembrie 17, 2012, 15:44:13 cum se rezolva aceasta problema?
Titlul: Răspuns: Ubercool Scris de: Duta Vlad din Noiembrie 17, 2012, 15:47:56 pentru fiecare exponent se cauta binar baza astfel incat pow(baza, exponent) = N. apoi se verifica daca baza este numar prim. Asta se poate face optim cu testul de primalitate miller rabin, dar in cazul de fata intra si solutia naiva in sqrt(baza), adica iei toate numerele pana la radical si vezi daca vreunu divide baza
Titlul: Răspuns: Ubercool Scris de: Mihai Ionut Enache din Noiembrie 17, 2012, 15:52:34 asta fac si eu..iau pe rand toti exponentii de la 2 la 60 (pot sa am 2^59 < 10^18) si cu cu ajutorul cautarii binare caut baza. daca am gasit o baza a, astfel incat a^b = x (numaru' dat pentru acel test), verific daca a este prim; aici am 2 cazuri: a < 100 000 (verific in vectorul creat cu ajutorul ciurului) si a >= 100 000 (caut in vectorul v in care am numai numere prime < 100 000 daca exista vreun numar v astfel incat a % v = 0 => nu este prim, iar in caz contrar, este prim). nu mi-a intrat decat pe un test, restul wa
Titlul: Răspuns: Ubercool Scris de: Dan H Alexandru din Noiembrie 17, 2012, 15:55:07 testul de primalitate miller rabin Imi dai , te rog , un link despre asa ceva ? Titlul: Răspuns: Ubercool Scris de: Simoiu Robert din Noiembrie 17, 2012, 15:55:35 Uite aici (http://en.wikipedia.org/wiki/Miller–Rabin_primality_test).
Titlul: Răspuns: Ubercool Scris de: Mihai Ionut Enache din Noiembrie 17, 2012, 15:56:32 multumesc de ajutor, o sa incerc si aceasta metoda, dar vreau sa stiu ce este gresit in rationamentul meu
Titlul: Răspuns: Ubercool Scris de: Dan H Alexandru din Noiembrie 17, 2012, 16:10:27 10x. :ok:
Titlul: Răspuns: Ubercool Scris de: Dragos Oprica din Noiembrie 17, 2012, 16:19:48 multumesc de ajutor, o sa incerc si aceasta metoda, dar vreau sa stiu ce este gresit in rationamentul meu Rationamentul tau este in principu bun, doar ca implementarea nu prea e buna. De exemplu, sursa ta pentru numarul 115651132813084969 nu da un raspuns corect. 115651132813084969 este 340075187^2, deci e ubercool, iar sursa ta nu e deacord. Titlul: Răspuns: Ubercool Scris de: Mihai Ionut Enache din Noiembrie 17, 2012, 16:24:44 asa este, in functia in care compar a^b cu x, imi depaseste unsinged long long int. mersi drastik
Titlul: Răspuns: Ubercool Scris de: Rares Buhai din Noiembrie 17, 2012, 18:02:39 pentru fiecare exponent se cauta binar baza astfel incat pow(baza, exponent) = N Sau, mergea foarte bine si chestia asta: baza = pow(N, 1.0 / i).Titlul: Răspuns: Ubercool Scris de: Petru Trimbitas din Noiembrie 17, 2012, 18:06:22 pentru fiecare exponent se cauta binar baza astfel incat pow(baza, exponent) = N Sau, mergea foarte bine si chestia asta: baza = pow(N, 1.0 / i).Eu am incercat asa si nu mi-a mers. faceai vreun artificiu ? Titlul: Răspuns: Ubercool Scris de: Rares Buhai din Noiembrie 17, 2012, 18:10:49 pentru fiecare exponent se cauta binar baza astfel incat pow(baza, exponent) = N Sau, mergea foarte bine si chestia asta: baza = pow(N, 1.0 / i).Eu am incercat asa si nu mi-a mers. faceai vreun artificiu ? Cod: double now = pow((long double) N, 1.0 / i); Titlul: Răspuns: Ubercool Scris de: Oncescu Costin din Noiembrie 22, 2012, 15:34:15 Imi puteti da si mie niste teste mai mari,va rog?Pentru ca sa verific ca un numar n<=10^9 este prim am tinut toate numerele prime pana in 31624 si l-am impartit pe rand la toate<=sqrt(n).IIau 0 puncte cu 3TLE si 7 WA.
Multumesc anticipat. Si inca ceva cat ar trebui sa dea pentru 0,respectiv 1? Titlul: Răspuns: Ubercool Scris de: Sorin Rita din Noiembrie 22, 2012, 16:30:47 Nu am rezolvat problema dar in timp nu are cum sa iti intre. Iar wa e normal sa iei pentru ca n<=10^18, deci trebuie sa retii toate numerele prime <= 10^9 si nu prea ai cum sa faci asta. Metoda ta de rezolvare nu e buna. Pentru 0 si 1 raspunsul ar trebui sa fie "NU"
Titlul: Răspuns: Ubercool Scris de: Oncescu Costin din Noiembrie 22, 2012, 21:24:58 Eu am
n=a^b cu b>=2 =>a<=10^9.Pentru a verifica daca a este prim am luat totate numerele prime<=sqrt(a)si daca a se imparte la vre unul din ele atunci nu este prim altfel este.Nu cred ca este ceva gresit in rationamentul meu.Sau daca da as vrea un test sau mai multe sa vad de ce. Nu ma astept la 100 de puncte dar vreau sa vad ce am gresit de iau WA. Daca nu este niimic gresit in rationamentul meu atunci ati putea sa imi dati niste teste mai mari sa imi gasesc greseala. Multumesc anticipat. Titlul: Răspuns: Ubercool Scris de: Dragos Oprica din Noiembrie 22, 2012, 21:48:09 Cod: input: Cod: output: Titlul: Răspuns: Ubercool Scris de: Oncescu Costin din Noiembrie 23, 2012, 11:26:21 Multumesc foarte mult,in special pt testul 5.Am luat 100 cu ideea aia.
|