Pagini recente » Diferente pentru utilizator/paisie intre reviziile 5 si 7 | Cod sursa (job #565576) | Diferente pentru utilizator/florin90tl intre reviziile 3 si 2 | Atasamentele paginii Profil tudorlivada | Diferente pentru winter-challenge-2020/solutii/hidden intre reviziile 4 si 5
Nu exista diferente intre titluri.
Diferente intre continut:
Acum avem $u * v$ puncte _candidat_: Fiecare pereche $(j, k)$ ne spune ca $(X{~j~}, Y{~k~})$ poate fi unul din punctele ascunse. E clar ca punctele ascunse formeaza o submultime a punctelor _candidat_.
Sa ne alegem un unghi _random_ si sa trasam o dreapta $d$ la acel unghi, care trece, sa zicem, prin origine. Prin fiecare punct _candidat_ $P{~t~}$, ducem dreapta paralela cu $d$, pe care o notam cu $d{~t~}$. Sortam punctele _candidat_ dupa distanta intre $d$ si $d{~t~}$. Deoarece unghiul ales este _random_, este o sansa foarte mare ca dreptele consecutive (in ordinea sortarii) sa se afle la o distanta relevanta. In caz ca distanta intre doua drepte este mai mica decat $epsilon = 10^6^$, alegem alt unghi.
Sa ne alegem un unghi _random_ si sa trasam o dreapta $d$ la acel unghi, care trece, sa zicem, prin origine. Prin fiecare punct _candidat_ $P{~t~}$, ducem dreapta paralela cu $d$, pe care o notam cu $d{~t~}$. Sortam punctele _candidat_ dupa distanta intre $d$ si $d{~t~}$. Deoarece unghiul ales este _random_, este o sansa foarte mare ca dreptele consecutive (in ordinea sortarii) sa se afle la o distanta relevanta. In caz ca distanta intre doua drepte este mai mica decat $epsilon = 10^{-6}^$, alegem alt unghi.
Prin $O(n*log(n))$ query-uri cu drepte paralele cu $d$, putem determina precis care sunt acele $d{~t~}$ care contin punctele ascunse. Algoritmul poate fi implementat cu o functie recursiva care primeste intervalul $[st, dr)$ de drepte _candidat_, si apeleaza fiii $[st, (st + dr) / 2)$, $[(st + dr) / 2, dr)$ doar daca afla, prin query, ca exista macar un punct ascuns pentre candidatii de la $st$ la $dr-1$.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.