Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: 285 Geometry  (Citit de 13904 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #25 : Noiembrie 09, 2012, 20:54:45 »

Ia incearca testul asta :

4
-1 -1 1 1
0 -1 0 1
-1 0 1 0
5 5 6 6

afiseaza 4, si ar trebuie sa afiseze 3, deoarece considera ca primul segment se intersecteaza cu ultimul si ele de fapt nu se intersecteaza.

Pentru a-l lua citeste mesajul lui wefgef
majoritatea programelor care nu folosesc respingere rapida pica asemenea teste Tongue.

vezi in cormen cu respingerea rapida  peacefingers
Memorat
Detrol2k
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #26 : Noiembrie 10, 2012, 17:36:34 »

Ia incearca testul asta :

4
-1 -1 1 1
0 -1 0 1
-1 0 1 0
5 5 6 6

afiseaza 4, si ar trebuie sa afiseze 3, deoarece considera ca primul segment se intersecteaza cu ultimul si ele de fapt nu se intersecteaza.

Pentru a-l lua citeste mesajul lui wefgef
majoritatea programelor care nu folosesc respingere rapida pica asemenea teste Tongue.

vezi in cormen cu respingerea rapida  peacefingers

Ai avut dreptate! A mers!  Shocked
Memorat
caliux
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #27 : Decembrie 19, 2012, 10:30:53 »

Imi explica si mie cineva in ce consta respingerea rapida si cum ar trebuii implementata?
Memorat
dutzul
De-al casei
***

Karma: 42
Deconectat Deconectat

Mesaje: 119



Vezi Profilul
« Răspunde #28 : Decembrie 28, 2012, 16:18:03 »

am o intrebare legata de produsul vectorial a 2 vectori am gasit ca e egal cu |a|*|b|*sin(X) unde X e unghiul dintre cele 2 drepte, de aici rezulta ca daca unghiul e intre 90 si 180 atunci produsul e negativ dar totusi sa luam dreapta suport pe axa ox cu originea in O si un punct in cadranul 1 si unu in cadranul 2. atunci un produs da negativ si unul pozitiv dar ambele puncte se afla pe aceiasi parte a dreptei...mersi anticipat  Very Happy
Memorat
SebiSebi
Nu mai tace
*****

Karma: 76
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #29 : Ianuarie 04, 2013, 18:10:33 »

Daca este vorba despre drepte atunci doua drepte se intersecteaza daca si numai daca pantele lor difera.
Panta unei drepte determinata de 2 puncte este :
m=(yB-yA) / (xB-xA);
Memorat
SebiSebi
Nu mai tace
*****

Karma: 76
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #30 : Ianuarie 04, 2013, 18:13:20 »

Fii atent ca in problema se lucreaza cu segmente nu cu drepte.
« Ultima modificare: Februarie 18, 2013, 20:46:20 de către Pirtoaca George Sebastian » Memorat
romyk
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #31 : Februarie 18, 2013, 20:17:11 »

imi da si mie cineva un exemplu ca la testul 1 ca sa imi dau seama de ce il tot pic? Brick wall
folosesc formula de intersectie a doua segmente dar nu imi dau seama de ce nu il iau si pe primul test Angry
Memorat
misino
Strain
*

Karma: 10
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #32 : Februarie 20, 2013, 20:53:24 »

Fa testul de respingere rapida.
Asta am facut si eu.
Memorat
romyk
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #33 : Februarie 20, 2013, 22:06:31 »

Nu inteleg ce inseamna "respingere rapida", dar am pus o conditie ca pentru testul:
4
1 1 2 2
3 3 4 4
-1 1 -3 3
3 -3 6 -6
sa imi afiseze 0 si am luat si primul test Winner 1st place
Memorat
OviTzu24
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« Răspunde #34 : Martie 03, 2013, 15:48:36 »

Care ii faza cu "respingerea rapida" ? Am si eu probleme cu testul 1, si nu pricep care ii problema.  
RE : romyk pentru primul test, out = 3 nu 0;
« Ultima modificare: Martie 03, 2013, 16:19:22 de către Carabian Ovidiu » Memorat
romyk
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #35 : Martie 05, 2013, 00:22:04 »

Nu ziceam de primul test de la evaluator ci de testul care l-am facut eu. Pentru el ar trebui sa afiseze 0. Daca folosesti doar formula de intersectie a segmentelor nu iei acest test(nu am idee de ce). Daca faci pe foaia o sa vezi ca trebuie sa iti dea 0.
Memorat
ion824
Strain


Karma: 11
Deconectat Deconectat

Mesaje: 17



Vezi Profilul
« Răspunde #36 : August 21, 2014, 21:01:07 »

Probabil că ar trebui îmbunătățite testele. Am luat 100 cu sursa care nu verifica cazul în care segmentele ce se intersectau erau coliniare.
Memorat
sstere
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #37 : August 26, 2015, 14:53:29 »

Iau toate testele in afara de Testul 4. Sunt convins ca este corect matematic implementat. Nu stiu ce imi scapa.
Memorat
bciobanu
Strain


Karma: 5
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #38 : August 27, 2015, 18:53:38 »

Nu m-am uitat foarte atent in sursa ta, dar iti sugerez sa compari numerele reale folosind epsilon.
Memorat
[email protected]
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #39 : Martie 30, 2017, 21:19:22 »

#include<iostream>
#include<fstream>
using namespace std;
struct element
{
   long long  x1,y1,x2,y2;
};
element v[10000];
int verificare(int i,int j)
{
   int ok=0,a1,a2,b1,b2,c1,c2;
   a1=v.y2-v.y1;
   b1=v.x2*(-1)+v.x1;
   c1=v.y1*v.x2-v.y2*v.x1;
   a2=v[j].y2-v[j].y1;
   b2=v[j].x2*(-1)+v[j].x1;
   c2=v[j].y1*v[j].x2-v[j].y2*v[j].x1;
   if((a1*v[j].x1+b1*v[j].y1+c1)*(a1*v[j].x2+b1*v[j].y2+c1)<=0)
   {
      if((a2*v.x1+b2*v.y1+c2)*(a2*v.x2+b2*v.y2+c2)<=0)
      {
         ok=1;
      }
   }
   return ok;
}
int conditie1(int i,int j)
{
   float n1,n2,ok=0;
   n1=(float)(v.y2-v.y1)/(v.x2-v.x1);
   n2=(float)(v[j].y2-v[j].y1)/(v[j].x2-v[j].x1);
   if(n1!=n2)
   {
      ok=1;
   }
   return ok;
}
   
   
int main()
{
   
   long long n,i,j,nr=0;
   fstream f("geometry.in",ios::in);
   f>>n;
   for(i=1;i<=n;i++)
   {
      f>>v.x1>>v.y1>>v.x2>>v.y2;
   }
   f.close();
   for(i=1;i<n;i++)
   {
      for(j=i+1;j<=n;j++)
      {
         if(conditie1(i,j)==1)
         {
         if(verificare(i,j)==1)
         {
            nr++;
         }
         }
      }
      
   }
   fstream g("geometry.out",ios::out);
   g<<nr;
   g.close();
}
Memorat
[email protected]
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #40 : Martie 30, 2017, 21:19:53 »

o solutie de 100 puncte
Memorat
[email protected]
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #41 : Martie 30, 2017, 21:20:19 »

o solutie de 100
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

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