Pagini: [1] 2 3 4   În jos
  Imprimă  
Ajutor Subiect: 011 Copaci  (Citit de 35400 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
fluffy
Echipa infoarena
De-al casei
*****

Karma: 71
Deconectat Deconectat

Mesaje: 146



Vezi Profilul
« : Martie 08, 2004, 20:01:35 »

Aici puteţi discuta despre problema Copaci.
Memorat
TheWoolf
Vizitator
« Răspunde #1 : Martie 14, 2005, 16:31:21 »

cum da mah 21 exemplu??
mie imi da 14 asa facut de mana...nush...nu ma prind... Think
Memorat
LordAnta
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 43



Vezi Profilul
« Răspunde #2 : Martie 14, 2005, 22:21:56 »

Fa de mana si ai sa vezi !!! =;
Memorat

Lord Anta, over and out!!!
TheWoolf
Vizitator
« Răspunde #3 : Martie 15, 2005, 00:29:46 »

pai am facut de mana si nam vazut.. Sad
Memorat
rss1987
Strain


Karma: -6
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #4 : Martie 15, 2005, 08:07:49 »

sigur ai folosit foaie de matematica?..si vezi sa nu le numeri pe alea care sunt pe granita..foloseste si o rigla ca sa-ti iasa bine poligonu'.
Memorat

RSS
TheWoolf
Vizitator
« Răspunde #5 : Martie 15, 2005, 12:44:53 »

Ooops Mr. Green ..my bad..
am desenat eu gresit...gata am luat 100...np..merge..e bine..
Memorat
stifmeister
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 24



Vezi Profilul
« Răspunde #6 : Martie 18, 2005, 09:16:01 »

Cine imi spune mie cum merge exact algoritmul care verifica daca un punct apartine interiorului unui poligon oarecare?
    Daca numar toate punctele de intersectie de la dreapta punctului cu laturile poligonului imi da, dar ce se intampla daca dreapta intersecteaza un varf al poligonului?


    Si sa imi spuneti si mie daca acest algoritm s-ar putea adapta pentru aceasta problema. (Din punct de vedere al timpului de executie, pentru ca banuiesc ca altfel nu ar fi probleme).


Multumesc mult!!! Embarassed
Memorat
rss1987
Strain


Karma: -6
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #7 : Martie 18, 2005, 09:28:44 »

In primul rand varianta asta nu te ajuta la rezolvarea problemei. Shame on you
Dar pentru stiinta iti explic:

cand intalnesti un punct de pe poligon te uiti la cele doua segmente care il contin: daca ambele seg au celalalt capat de aceeasi parte a dreptei ignori intersectia, altfel o numeri. Mai exista cazul cand intalnesti segmente ale poligonului care sunt incluse in dreapta de scanare. Le ignori pur si simplu de parca nici n-ar exista. Ok?

Ar trebui sa-ti dea raspunsul corect...  wink
Memorat

RSS
rss1987
Strain


Karma: -6
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #8 : Martie 18, 2005, 13:16:59 »

Testu' 2 e cu shmen? tot iau WA...daca se poate va rog sa mi-l postati...
Memorat

RSS
stifmeister
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 24



Vezi Profilul
« Răspunde #9 : Martie 19, 2005, 13:25:42 »

Ce complexitate are solutia comisiei?

Imi da cineva si mie o indicatie?
Memorat
cavendish
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 43



Vezi Profilul WWW
« Răspunde #10 : Martie 19, 2005, 15:17:54 »

probabil O(N) cu o ct destul de mica.

E o relatie matematica data de Teorema unui tip smecher  Shame on you . Nu-ti zic cum il cheama ca atunci ar fi prea evident... Tongue. Mai cauta relatii in triunghiul oarecare...
Memorat
cristi8
Vizitator
« Răspunde #11 : Martie 19, 2005, 15:32:00 »

Citat din mesajul lui: cavendish
probabil O(N) cu o ct destul de mica.

E o relatie matematica data de Teorema unui tip smecher  Shame on you . Nu-ti zic cum il cheama ca atunci ar fi prea evident... Tongue. Mai cauta relatii in triunghiul oarecare...


dc in triunghi oarecare ? ..nu merge cu "P***'s Theorem" ?
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #12 : Martie 19, 2005, 16:38:19 »

cmmdc are complexitate logaritmica deci solutia nu e chiar O(n)
Memorat
stifmeister
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 24



Vezi Profilul
« Răspunde #13 : Martie 19, 2005, 23:47:00 »

Am cautat dar nu am auzit sa fi cercetat Pitagora sau altcineva cati copaci intra intr-un triunghi oarecare.
Am descoperit totusi ceva intre cmmdc si triunghiul dreptunghic ( atatea indicii am primit).
Si anume: numarul punctelor de coordonate intregi din interiorul unui triunghi cu varfurile de asemenea de coordonate intregi este:
[ (a-i)(b-1) - cmmdc(a, b) + 1]/2. Mi se pare chiar foarte corecta formula si nu cred ca e greu de gasit. Adica intru-un dreptunghi sunt (a - 1)(b - 1) puncte de coordonate intregi iar intr-un triunghi dreptunghic sunt  cam jumatate ( pentru ca scadem  numarul de puncte de pe diagonala dreptunghiului care au coordonate intregi).
Nu?
Se poate generaliza si la un triunghi oarecare daca este nevoie ( il incadrez intr-un dreptungi si scad punctele din cele 3 triunghiuri dreptunghice care apar).
Asa... si daca asta este formula pe care mi-ai cerut-o, atunci ce fac mai departe?
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #14 : Martie 20, 2005, 01:50:37 »

Ii zice teorema lui Pick, daca vrei sa citesti mai mult pe tema asta poti sa te uiti aici: http://www.geometer.org/mathcircles/pick.pdf . Mai trebuie sa ai grija la punctele de coordonate intregi care sunt pe laturile poligonului.
Memorat
TheWoolf
Vizitator
« Răspunde #15 : Martie 20, 2005, 09:29:24 »

Ai stricat toata distractia...Booo!!! Mad
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #16 : Martie 20, 2005, 09:59:51 »

Ce distractie? E problema daca stii sau nu teorema, oricum e de antrenament, cu ce esti mai tare ca ai auzit de teorema dinainte sau nu ...
Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #17 : Martie 24, 2005, 13:37:37 »

Ok am calculat aria poligonului si numarul de puncte de coordonare intregi de pe laturi si apoi am folosit teorema lui Pick ca sa aflu numarul de puncte din interiorul poligonului. Aria am calculato cu formula cu determinanti si pentru numarul de puncte de pe laturi am folosit urm metoda: initial variabila B e 0 si luam laturile pe rand (inclusiv latura dintre punctul n si punctul 1) adunand de fiecare data cmmdc(|x-x[i-1]|,|y-y[i-1]|)... Mie mi se pare corecta rezolvarea dar totusi am primit WA la testu 5-10. Poate cineva sa ma ajute? Brick wall
Memorat
gogu
Client obisnuit
**

Karma: 42
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #18 : Martie 24, 2005, 14:14:06 »

Testele 5-10 poti sa le iei daca faci doar aria poligonului, puncte fiind pe laturi parca doar la testele 1-4, cele care le iei(asa a fost la mine, dupa ce am ignorat varfurile aflate intre alte 2 varfuri).
Poate nu iei varfurile ca puncte de pe laturi, nu stiu ce sa zic.
Oricum, ti-au iesit testele mai grele, vezi ca poate nu iti merge cmmdc in unele cazuri, nu stiu.
Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #19 : Martie 24, 2005, 15:02:43 »

Tu cum ai calculat aria poligonului? Am incercat de test sa scot cautarea punctelor pe laturi si am luat 0 puncte sa vad daca aici era problema, deci am gresit ceva la calcularea ariei...
Memorat
gogu
Client obisnuit
**

Karma: 42
Deconectat Deconectat

Mesaje: 98



Vezi Profilul
« Răspunde #20 : Martie 24, 2005, 15:24:40 »

Aria am facut-o cu determinanti. Imparteam poligonul in n-1 triunghiuri cu varfuri in punctele p0 pi si pi+1. Tu cum faci?
Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #21 : Martie 24, 2005, 15:36:50 »

Da aveam o greseala la calcularea ariei... Bine, eu inca nu m-am prins ce gresisem, dar pur si simplu am luat programul principal, am apasat delete si l-am scris din nou. Mr. Green Multumesc pentru ajutor
Memorat
sarabogdan
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #22 : Aprilie 19, 2005, 18:44:39 »

Aria o fac asa

Cod:

a[n+1] = a[1];

for (i =1 ; i<= n ; i++)
     aria+= a[i].x*a[i+1].y-a[i].y*a[i+1].x;

Pentru numarul punctelor de pe o latura fac
cmmdc(|a.x - a[i+1].x|,|a.y - a[i+1].y|)

Ce gresesc de nu iau ultimele 6 teste ?
Trebuie facut pe numere mari ? (desi nu cred , ca nu mai intra in timp)
Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #23 : Aprilie 19, 2005, 19:04:05 »

Asa faceam si eu aria si nu-mi lua ultimele 6 teste. Dupa asta am facut aria cu metoda de pe TopCoder:
Cod:
    long x1,x2,y1,y2;
    for(i=1;i+1<n;i++)
    {
        x1=v[i].x-v[0].x;
        y1=v[i].y-v[0].y;
        x2=v[i+1].x-v[0].x;
        y2=v[i+1].y-v[0].y;
        S+=(double)x1*y2-(double)x2*y1;
    }
    S=fabs(S*0.5);
si a mers. Nu cred totusi ca asta era problema. Mai probabil era ca am gresit la implementare.
Memorat
sarabogdan
Strain
*

Karma: 4
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #24 : Aprilie 19, 2005, 20:06:28 »

Am incercat sa calculez asa si tot 40 iau Brick wall
Mersi oricum
Memorat
Pagini: [1] 2 3 4   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines