Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: 067 Triang  (Citit de 13457 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ditzone
Vizitator
« Răspunde #25 : Aprilie 03, 2006, 20:47:42 »

E un articol pe info.devnet despre hash-uri, te poti documenta acolo :
http://info.devnet.ro/articole.php?page=art&art=27
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #26 : Aprilie 03, 2006, 20:48:05 »

Scrie de mana cautarea binara. Daca la compare_points ai comparat corect numerele reale ( adica x == y <=> |x-y| < EPS ) atunci nu are de la ce sa fie, decat de la functia care iti returneaza cel de-al treilea varf ( al triunghiului echilateral ) pentru perechea de puncte de coordonate (i,j). Vezi k pentru o pereche (i,j) sunt intotdeauna 2 puncte care indeplinesc proprietatea cu triunghiul echilateral!
Memorat
Coty
Nu mai tace
*****

Karma: 6
Deconectat Deconectat

Mesaje: 235



Vezi Profilul WWW
« Răspunde #27 : Aprilie 03, 2006, 20:59:57 »

@ditzone: mersi, am sa-l studiez maine, azi am lucrat de la 9AM si... se cere o pauza
@filipb: am facut asa(am cautat un exemplu de functie compare_int si am convertit-o la compare_points):
Cod:
#define EPS 0.001
int compare_points(const void *a,const void *b) // for qsort & bsearch
{
float* arg11=(float*)a;
float* arg12=(float*)a+sizeof(float);
float* arg21=(float*)b;
float* arg22=(float*)b+sizeof(float);
if(*arg11<*arg21 || (abs(*arg11-*arg21)<EPS && *arg12<*arg22))return -1;
if(abs(*arg11-*arg21)<EPS && abs(*arg12-*arg22)<EPS)return 0;
return 1;
}
apoi, pentru perechea (i,j) fac asa: who1 va fi punctul a[j] rotit in jurul lui a de i cu 60 de grade (bine, un pointer, pe care il trimit functiei) si who2 punctul a de i  rotit in jurul lui a[j] (echivalent cu a[j] rotit 300 grade). deci verific pentru doua puncte, daca am inteles bine la ce te refereai...
si am corectat apelul:
Cod:
			ans2=bsearch(who2,a+j,n-j+1,sizeof(punct),compare_points)
si acum imi da exemplul lor  Applause si pentru 4 puncte si pentru 5 puncte, dar iau WA pe 7 teste si TLE pe celelalte... de la ce sa fie?!?
Memorat
xtreme
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 118



Vezi Profilul
« Răspunde #28 : August 03, 2009, 22:00:11 »

Salut, e normal sa iau 10 TLE-uri cu o solutie de complexitate O(N^2 logN)?Sau solutia mea e gresita?La problema aceeasta se poate lua 100 de puncte cu o solutie de complexitate O(N^2 logN)?
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #29 : August 04, 2009, 01:58:36 »

Din cate stiu eu se poate lua 100 cu O(N^2 log N).
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
robigi
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #30 : Iulie 25, 2010, 17:07:11 »

imi puteti da si mie un pont va rog asupra aflarii coordonatelor celui de-al treilea varf al unui triunghi echilateral cand ai coordonatele celorlalte 2?
Memorat
freak93
Echipa infoarena
Nu mai tace
*****

Karma: 342
Deconectat Deconectat

Mesaje: 819



Vezi Profilul
« Răspunde #31 : Iulie 26, 2010, 17:01:28 »

Prima metoda ar fi sa calculezi mediatoarea(x si y al dreptei).A doua si dupa pararea mea mai simpla de inteles este cea folosind numere complexe(asta daca ai cunostinte despre ele):
Ai acolo o teorema: Un triunghi e echilateral daca numerele complexe cu afixele A,B,C(ABC fiind triunghiul in ordine trigonometrica) satisfac urmatoarea relatie:
a+eps*b+eps*eps*c=0 unde eps=cos 60+isin60;

Stiind a si b,  c poate fi:
1) -a*eps-b*eps*eps sau
2) -b*eps-a*eps*eps(considerand triunghiul in ordine invers trigonometrica).

Sper sa te ajute
Memorat
CezarMocan
Nu mai tace
*****

Karma: 252
Deconectat Deconectat

Mesaje: 567



Vezi Profilul
« Răspunde #32 : Iulie 27, 2010, 07:49:36 »

Prima metoda mai detaliata ar suna cam asa:
Notam cu L lungimea laturii triunghiului echilateral, cu M mijlocul segmentului pe care tu il ai. Se stie ca inaltimea intr-un triunghi echilateral este egala cu L * sqrt(3) / 2. Afli ecuatia mediatoarei segmentului tau (dreapta care trece prin M si e perpendiculara pe segment) si in momentul asta te intereseaza un punct care se afla la distanta L * sqrt(3) / 2 de M (1) si satisface ecuatia mediatoarei (2).
Scriind relatiile (1) si (2) obtii un sistem de 2 ecuatii cu 2 necunoscute (coordonatele punctului). Din cauza ca sistemul o sa se reduca la o ecuatie de gradul II o sa obtii 2 solutii (varful poate fi de ambele parti ale segmentului). Sper ca am fost suficient de explicit.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #33 : Iulie 27, 2010, 08:09:12 »

http://en.wikipedia.org/wiki/Rotation_matrix
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
robigi
Strain
*

Karma: 5
Deconectat Deconectat

Mesaje: 40



Vezi Profilul
« Răspunde #34 : Iulie 27, 2010, 15:34:25 »

Multumesc mult pentru tot.

Prima metoda o cunosteam si eu, dar mi sa parut putin cam ineficienta.
Memorat
R.A.R
Strain
*

Karma: -7
Deconectat Deconectat

Mesaje: 37



Vezi Profilul
« Răspunde #35 : Februarie 14, 2011, 18:01:46 »

Am incercat sa o rezolv folosind o tabela de dispersie insa primeam Signal11 ,dupa ceva modificari am ajuns sa primesc WA.
Am modificat sursa pana am ajuns la rezolvarea in O(N^3) dar si asa primesc WA la teste.Nu stiu daca e gresita formula sau e o problema de precizie(desi nu cred ).
Formula pt a determina coordonatele celui de-al 3-lea puct este :  
Cod:
x = (-x1+y1*s3+x2+y2*s3)/2;
y = (-y1-x1*s3-x2*s3+y2)/2; //cu s3 am notat radical din 3.
?(am folosit numere complexe)
Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #36 : Iulie 22, 2012, 10:19:09 »

Rog un admin sa se uite daca este in regula evaluatorul problemei, iau TLE cu complexitatea O( N^2logN ), chiar de interes am retrimis o sursa ce lua 100 cu timpi sub 200 ms si poftim rezultatul:
http://infoarena.ro/job_detail/699907
http://infoarena.ro/job_detail/770115
aceeasi sursa ruleaza mult mai lent, chiar ia TLE pe un test si asta nu mi se pare normal  Confused
Aceeasi problema este si la http://infoarena.ro/problema/curcubeu.
Memorat
dushmi
Nu mai tace
*****

Karma: 130
Deconectat Deconectat

Mesaje: 472



Vezi Profilul
« Răspunde #37 : Iulie 22, 2012, 16:42:00 »

Rog un admin sa se uite daca este in regula evaluatorul problemei, iau TLE cu complexitatea O( N^2logN ), chiar de interes am retrimis o sursa ce lua 100 cu timpi sub 200 ms si poftim rezultatul:
http://infoarena.ro/job_detail/699907
http://infoarena.ro/job_detail/770115
aceeasi sursa ruleaza mult mai lent, chiar ia TLE pe un test si asta nu mi se pare normal  Confused
Aceeasi problema este si la http://infoarena.ro/problema/curcubeu.

Done, am modificat eu limitele de timp (la ambele). Uneori evaluatorul merge mai prost Smile. De acum incolo te rog sa postezi astfel de probleme aici.
Memorat
dutzul
De-al casei
***

Karma: 42
Deconectat Deconectat

Mesaje: 119



Vezi Profilul
« Răspunde #38 : Iulie 25, 2012, 14:02:20 »

eu am alta idee care nustiu cum se face am tot incercat pe foaie da nu merge:
deci iau 2 puncte ,calculez panta si incerc sa rotesc dreapta cu 90 de grade . astfel pot afla ecuatia dreptei.
stiu ca se poate si altcumva dar eu sunt curios cum se roteste o dreapta la care i cunosti panta please help.
mersi anticipat
Memorat
SebiSebi
Nu mai tace
*****

Karma: 76
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #39 : Iulie 25, 2012, 14:38:37 »

Stii panta dreptrei (si neaparat un punct A care apartine dreptei, eventual mijlocul segmentului). Ai formula care spune ca daca doua drepte sunt perpendiculare atunci produsul pantelor este -1, deci afli panta noii drepte. Cunosti panta si un punct <=> ecuatia dreptei este d : y-yA=md(x-xA) .
Insa abordarea este greoaie si se poate pierde precizie . Daca ai notiuni de baza despre numere complexe , stii condititia ca un triunghi sa fie echilateral si gradul de dificultate al problemei se reduce foarte mult.
Memorat
dutzul
De-al casei
***

Karma: 42
Deconectat Deconectat

Mesaje: 119



Vezi Profilul
« Răspunde #40 : Iulie 25, 2012, 14:54:25 »

hmm o sa citesc despre numere complexe sti vrun articol pe net bun? (pe romana) oricum eu inca is curios cum rotesti o dreapta cu o panta anume(nu numa sa o rotesti cu 90*) sa zicem ca cu 45* Smile.
mersi.
Memorat
SebiSebi
Nu mai tace
*****

Karma: 76
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #41 : Iulie 25, 2012, 15:03:09 »

Uite aici un articol despre numere complexe : http://bacmd.com/attachments/186_numere_complexe.pdf .
Este destul de bun din cate am citit eu. Cat despre a doua intrebare... Stii ca tg a = m unde m=unghiul dintre axa OX si dreapta. Aflii unghiul a, si aduni/ scazi unghiul de rotatie, deci stii noua panta (trebuie sa tratezi cazurile particulare = atunci cand nu exista tangenta, si sa vezi in ce cadran(e) se afla segmentul.
Memorat
mathboy
Moderatori infoarena
Nu mai tace
*****

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« Răspunde #42 : Iulie 25, 2012, 15:50:34 »

In principiu e bine sa te gandesti la un numar complex (de forma A + Bi) ca fiind un vector care porneste din origine cu coordonatele A(pe axa OX) si B(pe axa OY) .
Geometric, inmultirea cu i a unui vector "stand" pe o axa reprezinta de fapt rotirea sa cu 90 de grade (adica pe axa urmatoare din stanga), de unde si faptul ca i^2 = -1 ( 1 * i * i = -1).
Nu am vazut asta in articolul dat de George si m-am gandit ca ar prinde bine cuiva. Smile
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #43 : Octombrie 27, 2012, 11:56:30 »

Cred ca ar merge marita putin limita de timp Smile
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

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