Cum la problemele de programare dinamica au fost atatea discutii
interesante si idei din care am invatat cu totii, m-am gandit ca
putem discuta si despre probleme de geometrie (mai mult sau mai putin)computationala. Fiecare problema ar trebui rezolvata cu un algoritm care sa mearga in maxim 5 secunde. Multe sunt banale si ar trebui sa le stim toti si sa le implementam in sub 20 de minute. Majoritatea sunt medii si cateva sunt complicate ca idee, altele complicate ca implementare. Am incercat sa pun * care sa exprime dificultatea. Va rog sa va uitati peste ele si sa imi ziceti care nu stiti cum se face, sa avem o discutie constructiva. Da va rog intrebati in ordinea gradului de dificultate (adica nu ma intrebati problema cea mai grea daca nu stiti cum se fac problemele mai simple). Si daca aveti voi vreo problema de geometrie care credeti ca e interesanta sau nu o stiti face, intrebati. ** inseamna problema medie Am scris cam multe probleme, dar incercati sa va uitati, macar pe cele <= ** 1. ** Se dau coordonatele a n puncte din plan (n<=1000). Gasiti o dreapta care contine cele mai multe puncte coliniare din punctele date (cormen). 2. ** Se dau coordonatele a n puncte din plan (n<=1000). Se cere sa se gaseasca daca exista sau nu un triunghi cu varfurile in cele n puncte care sa fie dreptunghic. 3. Se dau n puncte de coordonate intregi (n<=1000) se cere sa se determine un poligon cu varfurile in aceste puncte (ceva de genu asta s-a dat la lot prin 94). 4. Se dau n puncte (n<=10000). Sa se determine infasuratoarea convexa a celor n puncte (cormen,stroe). 5. ** Se dau 2 poligoane convexe fiecare avand maxim 1000 de varfuri. Se cere sa se determine intersectia lor (bursele agora,i-am dat 2 stele desi la concurs am complicat-o rau de tot). 6. *** Se dau n puncte (n<=10000). Sa se determine perechea de puncte din cele n cu distanta maxima intre ele (parca am vazut-o pe la ceva acm, s-ar putea sa fie si in cormen, medie + * daca nu stiti cum sa o faceti, implemenatrea e *). 6 b *** Se dau n puncte (n<=10000). Sa se determine perechea de puncte din cele n cu distanta minima intre ele. (cormen si bursele agora) 7. * Se dau n puncte (n<=400) oricare 3 necoliniare. Gasiti un romb cu varfurile in punctele date, (daca exista) (s-a propus pe lista de discutii [olimpiada] acum vreo 2 ani). 8. Se dau n puncte (n<=500). Gasiti un patrat arie minima care contine in interior sau pe frontiera cel putin jumatate din punctele
date (internet problem solving contest 2002, astia au probleme faine
de tot). 9. ***** Se dau n puncte in plan (n<=1000) de coordonate intregi mai mici in modul ca 250, oricare 3 necoliniare. Gasiti un triunghi cu varfurile in punctele date de perimetru minim. (Nu stiu o rezolvare simpla la problema cu restrictie 250, dar cred ca pot face o rezolvare un pic mai complicata pentru coordonate reale.) (lista [olimpiada]) 10. ***** Se dau n puncte in plan (n<=1000) de coordonate reale. Se cere sa se determine triunghiul de arie minima cu varfurile in punctele date. (lista [olimpiada], este o rezolvare in N^2 dar destul de dura) 11. **** Se dau n drepte (n<=1000). Sa se determine dreptele vizibile din origine. (am auzit-o de la Dumitran si este si pe lista lui Francu, exista o rezlvare mai usoara cu un pic de cunostinte, daca se face muncitoreste problema e grea, daca se face cu idee problema e *) 12. **** Se dau n puncte in plan (n<=100000). Se cere sa se determine cercul de raza minima care le contine in interior pe toate punctele. (Balkan OI 2002, si http://www.fudv.ro/campion/, daca testele sunt slabe ... atunci problema ar merita * altfel exista un algoritm randomizat al lui Welzl care rezolva problema in O(N)) 13. *** Se dau n puncte in plan (n<=1000) si un numer real pozitiv r. Se cere sa se determine cercul de raza r ce contine numarul maxim de puncte in interior. (topcoder o varianta cu n mai mic, si CEOI 96 sau 97, problema faina, de idee) 14. *** Se dau n dreptunghiuri cu laturile paralele cu axele de coordonate ce se pot suprapune(n<=1000) . Se cere aria figurii acoperite de aceste dreptunghiuri. (IOI 98, selectie lot acm Universitatea Bucuresti) 15. *** Se dau n triunghiuri dreptunghice isoscele cu laturile perpendiculare paralele cu axele de coordonate (n<=1000). Se cere aria reuniunii triunghiurilor. (BOI 2002) 16. Se da un numar natural n. Care este numarul de regiuni in care se imparte planul de n cercuri care nu se intersecteaza cate 3 intrun punct si oricare 2 se intersecteaza in 2 puncte ( :) problema de pe UVA). 17. *** Care este numarul maxim de regiuni in care se inparte planul daca folosim n drepte. Aceeiasi problema pentru cercuri. Aceeiasi problema pentru spatiu si sfere (problema data la bursele agora) (Probleme neelementare tratate elementar Iaglom,Iaglom). 18. * Avem n drepte in plan fiecare dreapta fiind data prin 2 perechi de coordonate (n<=100). Sa se determine in cate zone se imparte astfel planul (internet problem solving contest 2001). 19. ** (problema de-a mea :)) Se dau n de puncte de coordonate intregi (n<=10000). Sa se determine cate triunghiuri cu varfurile in punctele astea au ca arie un numar intreg.
20. * Sa se determine aria unui poligon oarecare ce are n varfuri
(n<=10000).(judeteana Bistrita,97) 21. Sa se determine daca un poligon cu n varfuri (n<=100000) este convex. 22. Sa se determine daca un poligon are varfurile date in sens trigonometric sau sens orar (n<=100000). 23. Sa se determine centrul de greutate al unui poligon oarecare ce are n varfuri (n<=10000). (acm central european region, olimpiada online) 24. Se dau n segmente (n<=100). Sa se determine o dreapta ce intersecteaza numarul maxim posibil de segmente. (lista [olimpiada]) 25. Se dau doua multimi de n si m puncte (n,m<=300). Sa se determine o dreapta care separa aceste doua multimi. (baraj 98) 26. * Se da un poligon oarecare cu n varfuri (n<=1000). Se dau m puncte (m<=1000). Sa se determine care dintre puncte sunt interioare poligonului. (pregatire lot 99) 27. *** Se da un poligon convex cu n varfuri (n<=1000). Se dau m puncte (m<=100000). Sa se determine care dintre puncte sunt interioare poligonului. (balcaniada 99, cu date ca si la problema anterioara) 28. *** Se da un poligon convex de n noduri (n<=10000) si m drepte (m<=10000). Sa se determine cate drepte intersecteaza poligonul. (baraj 98, ceoi 2002) 29. * Se dau n puncte de coordonate intregi in plan, sa se determine numarul de puncte de coordonate intregi de pe contrulul poligonului, aria poligonului, si numarul de puncte de coordonate intregi interioare poligonului. (selectie acm Babes 2003 :)) 30. *** Se da un poligon convex cu n varfuri (n<=10000) de coordonate reale intre 0 si 30000. Sa se determine numarul de puncte de coordonate intregi din interiorul poligonului. (eu am vazut-0 pe lista lui Francu, dar cred ca e si pe acm.timus.ru) 31. *** Se dau n puncte (n<=1000) intr-un dreptunghi. Sa se determine dreptunghiul de arie maxima continut in dreptunghiul initial cu laturile paralele cu cele ale dreptunghiului initial, care nu contine nici un punct in interior. (El Judge, UVA, CEOI 96 sau 97) Salutare si spor la munca Cosmin