Afişează mesaje
|
Pagini: [1]
|
5
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 029 Infasuratoare convexa
|
: Februarie 04, 2010, 18:22:53
|
Problema asta o tot intrebam si eu pe forum dar nu mi-a raspuns nimeni... Pana la urma am dat eu de o kestie. iei primu punct(cel mai de jos stanga,sau oricare dp extremitate) si adaugi la x un 0.00010007 sau orice numar fff mic, iar la y adaugi la fel un numar random 0.00010003 de exemplu. Si bagi punctu asta in stiva si faci scanarea in mod normal si o sa mearga. daca poligonul este convex poti sa faci media aritmetica a tuturor punctelor(dupa x si dupa y) si sortezi asa int cmp(p x,p y) { return atan2(a.y-medie.y,a.x-medie.x)<atan2(b.y-medie.y,b.x-medie.x); }
am citit si posturile tale inainte sa postez eu, dar nu prea am inteles ce ai intrebat . in fine deci ca sa inteleg: adun la punctu inditial niste miimi si dupa fac sortarea? EDIT: da frate ms mult, esti super
|
|
|
6
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 029 Infasuratoare convexa
|
: Februarie 04, 2010, 17:40:49
|
da aveti dreptate, am incercat aia ieri dar este un caz particular. chick this intra : 8 0 -2 1 -1 2 0 1 1 0 2 -1 1 -2 0 -1 -1 el le sorteaza asa: 1(punct initial) 2 3 4 5 6 8 7iar cand el ajunge la 8 7 sa le bage in stiva, il baga prima data pe 8 pentru ca asa este in sortare!!!! iar dupa ce il baga pe 7 este aria pozivita si il scoate pe 8 si il baga pe 7 atentie in functie de cum fac sortarea... daca ii bag in functia de comparare a sortarii tg1 > tg2, se sorteaza unghiurile cu tg egala descrescator, iar daca pun tg1>=tg2 ,unghiurile cu tg egala se sorteaza crescator... astfel scap de problema de la 6 7 8 dar apare alta la 2 3 4
|
|
|
10
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 022 Paduri de multimi disjuncte
|
: Decembrie 11, 2009, 05:37:22
|
salut, am cautat dar ce am gasit nu a fost pe intelesu meu daca aveti timp spuneti-mi ce face codu asta, e din sursa oficiala, in special a doua linie... nu am mai intalnit ceva asemanator if (find(x) == find(y)) {fprintf(stderr,"%d ", i);return 0;} ty
|
|
|
|