infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Andrei Grigorean din Martie 01, 2013, 01:14:21



Titlul: 1368 Kgon
Scris de: Andrei Grigorean din Martie 01, 2013, 01:14:21
Aici puteţi discuta despre problema Kgon (http://infoarena.ro/problema/kgon).


Titlul: Răspuns: 1368 Kgon
Scris de: UAIC.VlasCatalin din Martie 02, 2013, 21:22:33
Nu inteleg de ce iau incorect pe toate testele.  ](*,)
Am incercat sa rezolv in felul urmator:
Am un vector de vizitati unde marchez punctele care am incercat sa le includ intr-un poligon.
Pentru fiecare punct nevizitat controlez daca face parte dintr-un poligon regulat, adica controlez daca exista un punc la distanta d+2*pi*r/k, daca exista il marchez ca vizitat si caut urmatorul punct si tot asa pina cind ajung la punctul k-1, daca am ajuns la punctul k-1 atunci adun 1 la rezultatul final. Fac calculele cu o precizie de 0.00001, dar am incercat si alte precizii, am incercat sa precaut si cazurile cind coincid mai multe puncte,  oricum iau incorect pe toate testele.
Help please!  :sad:


Titlul: Răspuns: 1368 Kgon
Scris de: George Marcus din Martie 02, 2013, 21:42:17
Autorii iti sugereaza o precizie de 10^-5 iar tu o faci cu 10^-6 (ah, vad ca ai incercat de toate :) ) Foloseste constanta M_PI din math.h.


Titlul: Răspuns: 1368 Kgon
Scris de: UAIC.VlasCatalin din Martie 02, 2013, 22:25:28
Ms, acum merge, dar tot nu inteleg de ce nu mergea cu valoarea lui pi scrisa de mina  :?


Titlul: Răspuns: 1368 Kgon
Scris de: Simoiu Robert din Martie 02, 2013, 22:41:31
Aproximarea 3.14 nu e destul de fina, iti trebuie cel putin vreo 6 zecimale sa nu-ti dea eroare :).


Titlul: Răspuns: 1368 Kgon
Scris de: UAIC.VlasCatalin din Martie 02, 2013, 22:47:13
Pai la sursele anterioare am pus cu 6 zecimale 3.141592, dar oricum nu a mers, probabil trebuie inca mai multe, alta explicatie nu vad.  :)
Mda, a mers cu 13 zecimale.  :wink:


Titlul: Răspuns: 1368 Kgon
Scris de: Stefan Eniceicu din Martie 02, 2013, 22:53:38
Faci o impartire si o inmultire. Nu ai cum sa stii ce ordin de marime va fi rezultatul din cauza ca nu ai K si R ca valori decat din input (daca ai o data K = 5 si o data K = 1000, iti shifteaza zecimala cu 3 pozitii, adica compari 3.14159 * 1000 = 3141.59000 la a 5a zecimala). Daca iei destule zecimale nu mai are cum sa crape.