Pagini recente » Profil AndrewTheGreat | Concursuri Virtuale | Istoria paginii utilizator/pcosmin93 | Diferente pentru utilizator/funnystocky intre reviziile 54 si 55 | Diferente pentru monthly-2014/runda-2/solutii intre reviziile 7 si 8
Nu exista diferente intre titluri.
Diferente intre continut:
Pentru inceput trebuie observat orice punct din interiorul unui poligon are urmatoarea proprietate:
* Exista cel putin o dreapta care trece prin acel punct astfel incat daca se taie dreapta in doua semidrepte (cu capatul semidreptelor in punctul respectiv), ambele semidrepte intersecteaza poligonul intr-un numar impar de laturi.
Folosind aceasta observatie ne putem gandi la abordare de genul urmator:
* Calculam punctele de intersectie ale dreptei pe care se afla toate punctele din query-uri cu laturile poligonului
* Sortam punctele de intersectie dupa $x$ si daca sunt egale dupa $y$
* Pentru fiecare punct din query se cauta binar pozitia pe care ar trebui sa o aiba in sirul sortat al punctelor de intersectie. Daca inainte si dupa pozitia ocupata in sir se gaseste un numar impar de puncte atunci punctul din query se afla in interiorul poligonului
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.