Pagini recente » Diferente pentru blog/braindump-job-silicon-valley intre reviziile 22 si 18 | Diferente pentru preoni-2008/runda-4/solutii intre reviziile 12 si 10 | Atasamentele paginii Algoritmiada 2011 - Runda Finală, Poze | Diferente pentru teorema-chineza-a-resturilor intre reviziile 89 si 14 | Diferente pentru monthly-2014/runda-2/solutii intre reviziile 6 si 5
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.