|
Titlul: 217 Popandai2 Scris de: ditzone din Martie 30, 2006, 20:26:22 Aici puteţi discuta despre problema Popandai2 (http://infoarena.ro/problema/popandai2).
Titlul: Răspuns: 217 Popandai2 Scris de: Costea Andrei din Martie 30, 2006, 23:22:17 Am si eu o intrebare legata de modul in care au fost concepute testele. Cum generezi un poligon convex de N puncte? Daca generezi aleator cat de multe puncte vrei si faci infasuratoarea convexa sunt prea mici sansele sa aiba 1000 puncte.
Titlul: Răspuns: 217 Popandai2 Scris de: Cosmin Negruseri din Martie 30, 2006, 23:26:39 Poti genera vectori aleatori care sa aiba suma (0,0) si vectorii astia sa ii sortezi dupa panta si apoi astia pusi cap la cap formeaza un poligon convex ...
[edit] daca generezi aleator n puncte si faci infasuratoarea convexa, atunci pe infasuratoare vor fi O(log n) puncte Titlul: Răspuns: 217 Popandai2 Scris de: Valentin Stanciu din Martie 31, 2006, 10:30:21 Interesanta ideea ideea de generare a poligonului convex!
Thx for sharing! Titlul: Răspuns: 217 Popandai2 Scris de: Valentin Stanciu din Aprilie 05, 2006, 10:58:26 Pentru cei care primesc incorect pe ultimul test, un hint: mi se pare ca exista 3 puncte coliniare!
Titlul: Răspuns: 217 Popandai2 Scris de: Andrei-Lucian Croitoru din Aprilie 06, 2006, 10:32:16 Cum pot rezolva problema asta fara 4 for-uri?
Alta metoda nu stiu, poate cineva sa-mi dea cel putin un indiciu? Titlul: Răspuns: 217 Popandai2 Scris de: Tandrau Alexandru din Aprilie 06, 2006, 10:54:29 Incearca ca pt fiecare diagonala posibila sa gasesti cel mai mare patrulater
Titlul: Răspuns: 217 Popandai2 Scris de: Andrei-Lucian Croitoru din Aprilie 06, 2006, 11:28:35 Pai asta am facut pana acum: 2 for-uri pt diagonala+2 for-uri pt celelalte 2 puncte.
Fii putin mai concret: cum scap de for-uri? pls... :? Titlul: Răspuns: 217 Popandai2 Scris de: Tandrau Alexandru din Aprilie 06, 2006, 12:36:57 Cu binary search iei 70-90 de puncte. Dupa aceea poti observa ca punctele cautate sunt foarte apropiate de punctele gasite anterior (pentru cazurile mari) si poti optimiza un pic, iese O(n^2).
Titlul: Răspuns: 217 Popandai2 Scris de: Mihai Leonte din Iulie 27, 2007, 19:47:00 Ceva e ciudat cu evaluatorul la problema asta. Primesc 70p, dar nu imi spune ce e gresit. Cand dau pe Borderoul de Evaluare scrie:
"Compilare: " si mai jos se buseste pagina... adica se vad butoanele aiurea si fondul albastru si... in fine, a mess. Doar la problema asta. Ma intriga la culme, ca desi suspectez WA, sunt tare curios ce s-a intamplat cu alea 3 teste. Titlul: Răspuns: 217 Popandai2 Scris de: Bogdan-Cristian Tataroiu din Iulie 27, 2007, 19:57:34 Looks fine to me in firefox, konqueror. sunt wauri :P
Titlul: Răspuns: 217 Popandai2 Scris de: Mihai Leonte din Iulie 28, 2007, 20:20:59 Am observat si eu, sorry, my fault. :roll:
Mi s-a busit Mozilla si l-am reinstalat. Titlul: Răspuns: 217 Popandai2 Scris de: Savin Tiberiu din August 01, 2007, 10:28:03 ceva special pe primu test?? iau WA restu OK
Titlul: Răspuns: 217 Popandai2 Scris de: Cezar Mocan din Aprilie 30, 2008, 12:57:40 Cam ce optimizari s-ar putea face pentru 100?
Titlul: Răspuns: 217 Popandai2 Scris de: Cosmin Negruseri din Mai 02, 2008, 08:49:21 E articol cu solutii, l-ai citit?
Titlul: Răspuns: 217 Popandai2 Scris de: Cezar Mocan din Mai 02, 2008, 10:06:31 Nu... nu-l gasesc :?. Imi dai te rog link?
Titlul: Răspuns: 217 Popandai2 Scris de: Serban Andrei Stan din Mai 02, 2008, 19:57:43 Apropo, problema merge si O (N ^ 2 log N) cu O (n ^ 2) luam doar 70, poate te ajuta...
Titlul: Răspuns: 217 Popandai2 Scris de: Andrei Misarca din Aprilie 01, 2009, 15:19:23 Imi puteti da un hint cu sa fac in O(N^2), adica dupa ce am ales 2 puncte, nu prea imi iese cum as putea determina celelalte 2 in O(1) :)
Titlul: Răspuns: 217 Popandai2 Scris de: Cezar Mocan din Aprilie 01, 2009, 15:41:28 Andrei: Cele 2 puncte pe care le selectezi reprezinta o diagonala si te folosesti de faptul ca punctele sunt sortate in ordine trigonometrica (uita'te cum "se misca" cealalta diagonala in functie de pozitia punctului 2 selectat fata de punctul 1).
Titlul: Răspuns: 217 Popandai2 Scris de: Andrei Misarca din Aprilie 01, 2009, 16:31:47 Din ce mi-am desenat eu, avand un punct fixat, pt celalalt punct, a2a diagonala poate ramane aceeasi ca la punctul anterior sau se poate muta in sens trigonometric in urmatorul punct. Dar nu stiu daca pentru toate cazurile se aplica regula asta #-o
Titlul: Răspuns: 217 Popandai2 Scris de: Cezar Mocan din Aprilie 01, 2009, 16:43:13 Da, asta e. :ok: (vezi ca se poate muta si mai mult de un punct)
Titlul: Răspuns: 217 Popandai2 Scris de: Andrei Misarca din Aprilie 01, 2009, 17:46:00 (vezi ca se poate muta si mai mult de un punct) Atunci complexitatea nu poate sa sara de O(N^2)? Titlul: Răspuns: 217 Popandai2 Scris de: Cezar Mocan din Aprilie 01, 2009, 18:05:33 Pai nu, pentru ca tu in total pentru primul punct fixat faci N operatii ca sa il variezi pe al 2-lea, si ca sa se miste a 2-a diagonala sunt din nou maxim N (cred ca N, poate e mai mult dar e tot liniar) operatii, care se fac in timp ce misti al 2-lea punct. Ia-ti cateva exemple mai mari si o sa intelegi...
Titlul: Răspuns: 217 Popandai2 Scris de: Andrei Misarca din Aprilie 01, 2009, 19:56:12 Dap, mersi am inteles :ok:
[L.E.] Care-i spirla la testu' 9 ca iau incorect in veselie :D [L.E. 2] Fixed :D pentru cei care au probleme cu acest test aveti grija la cazul in care sunt mai multe puncte coliniare :peacefingers: Titlul: Răspuns: 217 Popandai2 Scris de: zloteanu adrian nichita din Septembrie 10, 2009, 09:10:40 Cod: Urmatoarele N linii contin fiecare cate doua "numaere" intregi (Xi , Yi) Titlul: Răspuns: 217 Popandai2 Scris de: Paul-Dan Baltescu din Septembrie 10, 2009, 09:46:22 Am modificat. Poti sesiza intr-un mod mai politicos greselile strecurate in enunturi.
Titlul: Răspuns: 217 Popandai2 Scris de: Farcasanu Alexandru Ciprian din Februarie 26, 2010, 20:22:30 Deci trebuie sa fixez doua puncte A, C(care reprezinta prima diagonala a patrulaterului) , avand cealalta diagonala : B-D. Daca avansez cu C atunci mi se pot intampla trei chestii:
1) avanseaza B-ul sau 2) avanseaza D-ul sau 3)avanseaza B-ul si D-ul Asa este? Am implementat asa si nu iau decat 10 p Titlul: Răspuns: 217 Popandai2 Scris de: Andrei-Bogdan Antonescu din Februarie 26, 2010, 20:38:50 Citat Deci trebuie sa fixez doua puncte A, C(care reprezinta prima diagonala a patrulaterului) , avand cealalta diagonala : B-D. Daca avansez cu C atunci mi se pot intampla trei chestii: E buna ideea, probabil ai ceva greseli la implementare.1) avanseaza B-ul sau 2) avanseaza D-ul sau 3)avanseaza B-ul si D-ul Asa este? Am implementat asa si nu iau decat 10 p Incearca sa gasesti un test care iti pica. :) |