Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Ubercool  (Citit de 9792 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
savim
Nu mai tace
*****

Karma: 194
Deconectat Deconectat

Mesaje: 333



Vezi Profilul
« : Noiembrie 17, 2012, 01:26:40 »

Aici puteti pune intrebari la problema Ubercool de la concursul FMI No Stress 3.
Memorat
misino
Strain
*

Karma: 10
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #1 : 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
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #2 : Noiembrie 17, 2012, 13:56:38 »

Cam jeg cu erorile de precizie. Mergea precizata in enunt precizia care trebuie folosita.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
DraStiK
Nu mai tace
*****

Karma: 131
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #3 : 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.
Memorat
Mihai22e
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #4 : Noiembrie 17, 2012, 15:44:13 »

cum se rezolva aceasta problema?
Memorat
Vman
Echipa infoarena
Vorbaret
*****

Karma: 45
Deconectat Deconectat

Mesaje: 176



Vezi Profilul
« Răspunde #5 : 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
Memorat
Mihai22e
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #6 : 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
Memorat
danalex97
Vorbaret
****

Karma: 54
Deconectat Deconectat

Mesaje: 192



Vezi Profilul
« Răspunde #7 : Noiembrie 17, 2012, 15:55:07 »

testul de primalitate miller rabin

Imi dai , te rog , un link despre asa ceva ?
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #8 : Noiembrie 17, 2012, 15:55:35 »

Uite aici.
Memorat
Mihai22e
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #9 : 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
Memorat
danalex97
Vorbaret
****

Karma: 54
Deconectat Deconectat

Mesaje: 192



Vezi Profilul
« Răspunde #10 : Noiembrie 17, 2012, 16:10:27 »

10x.  Ok
Memorat
DraStiK
Nu mai tace
*****

Karma: 131
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #11 : 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.
Memorat
Mihai22e
Client obisnuit
**

Karma: 20
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #12 : 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
Memorat
darren
Client obisnuit
**

Karma: 106
Deconectat Deconectat

Mesaje: 76



Vezi Profilul
« Răspunde #13 : 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).
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #14 : 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 ?
Memorat
darren
Client obisnuit
**

Karma: 106
Deconectat Deconectat

Mesaje: 76



Vezi Profilul
« Răspunde #15 : 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);
long long inow = now;
if (pow((long  double) inow, i) == N)
    ...
Nu cred ca era nevoie de long double, dar am pus asa doar ca sa ma asigur ca merge.
Memorat
geniucos
Vorbaret
****

Karma: 21
Deconectat Deconectat

Mesaje: 199



Vezi Profilul
« Răspunde #16 : 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?
« Ultima modificare: Noiembrie 22, 2012, 15:45:55 de către Oncescu Costin » Memorat
soriyn
Vorbaret
****

Karma: 24
Deconectat Deconectat

Mesaje: 150



Vezi Profilul
« Răspunde #17 : 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"
Memorat
geniucos
Vorbaret
****

Karma: 21
Deconectat Deconectat

Mesaje: 199



Vezi Profilul
« Răspunde #18 : 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.
Memorat
DraStiK
Nu mai tace
*****

Karma: 131
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #19 : Noiembrie 22, 2012, 21:48:09 »

Cod:
input:
10
66078623738400
418121490257280
1024192009
811864507620600
289852172683465681
1101642481
742726009
140802626764800
12400864
22968504

Cod:
output:
NU
NU
DA
NU
DA
DA
DA
NU
NU
NU
Memorat
geniucos
Vorbaret
****

Karma: 21
Deconectat Deconectat

Mesaje: 199



Vezi Profilul
« Răspunde #20 : Noiembrie 23, 2012, 11:26:21 »

Multumesc foarte mult,in special pt testul 5.Am luat 100 cu ideea aia.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines