Pagini: [1] 2 3   În jos
  Imprimă  
Ajutor Subiect: 168 Numarare triunghiuri  (Citit de 23057 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ditzone
Vizitator
« : Ianuarie 21, 2006, 17:04:31 »

Aici puteţi discuta despre problema Numarare triunghiuri.
Memorat
spixie
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #1 : Februarie 14, 2006, 18:26:42 »

cum se face de 100?  Rolling Eyes
Memorat

Blackened is the end!
u-92
Vizitator
« Răspunde #2 : Februarie 14, 2006, 19:08:00 »

citeste articolul cu solutii de pe info.devnet.ro
Memorat
Coty
Nu mai tace
*****

Karma: 6
Deconectat Deconectat

Mesaje: 235



Vezi Profilul WWW
« Răspunde #3 : Februarie 14, 2006, 22:56:31 »

mie mi-a mers si cu un fel de N^3  Har har, sa fie de la teste???
 dar mai frumos e cu cautare binara...
Memorat
ditzone
Vizitator
« Răspunde #4 : Februarie 15, 2006, 13:40:49 »

E si mai frumos cu n^2
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #5 : Februarie 19, 2006, 19:22:55 »

cum adik nedescrescatoare? nu inteleg ce vrea sa zica... Embarassed
Memorat

vid...
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #6 : Februarie 20, 2006, 16:06:08 »

Crescatoare...   Eh?
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #7 : Februarie 20, 2006, 16:40:34 »

10x am luat 70 cu o sol de O(n^3)
Memorat

vid...
Tabara Mihai
Vizitator
« Răspunde #8 : Septembrie 30, 2006, 11:51:12 »

Am facut O(N^3) - 75.
Am facut si cu Cautare Binara si a mers de 100.

Insa daca a facut cineva in O(N^2) as vrea sa imi explice putin ideea.  Think

Multumesc. Ok
Memorat
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #9 : Septembrie 30, 2006, 17:01:38 »

Hashing ...
Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
Tabara Mihai
Vizitator
« Răspunde #10 : Septembrie 30, 2006, 20:44:56 »

Hashing ...

Aveam o presimtire ca se face asa.OK. multumesc. Weightlift
Memorat
Marius
Nu mai tace
*****

Karma: 154
Deconectat Deconectat

Mesaje: 572



Vezi Profilul
« Răspunde #11 : Septembrie 30, 2006, 21:11:53 »

Nu e nevoie sa presimti, e nevoie sa stii ca o cautara binara o poti inlocui cu un hashing.
Memorat

Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #12 : Octombrie 03, 2006, 16:19:33 »

Merge fara hashing, e algoritm de 5 linii.
Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #13 : Februarie 15, 2007, 22:57:45 »

http://infoarena.ro/problema/nrtri .. nu ar trebui sa dea exemplul 1? Eu am facut n^3, am luat 75. Si acum implementez si cautarea binara, deci daca mi-a dat pe majoritatea testelor, raspunsul 2 ar trebui sa fie gresit.
Memorat

....staind....
Tabara
Nu mai tace
*****

Karma: 20
Deconectat Deconectat

Mesaje: 216



Vezi Profilul
« Răspunde #14 : Februarie 15, 2007, 23:01:03 »

http://infoarena.ro/problema/nrtri .. nu ar trebui sa dea exemplul 1? Eu am facut n^3, am luat 75. Si acum implementez si cautarea binara, deci daca mi-a dat pe majoritatea testelor, raspunsul 2 ar trebui sa fie gresit.
Scuze...nu mai retineam ideea..
am verificat acuma cu sursa mea si e 1.( am luat 100 cu ea )

Ar trebui schimbat enuntul. Eh?
Scuze de eroarea initiala.Imi cer scuze  Cry
« Ultima modificare: Februarie 15, 2007, 23:03:08 de către Tabara Mihai » Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #15 : Februarie 15, 2007, 23:03:10 »

exemplul e intr-adevar gresit, (2+3<6) si totusi cum de nu a observat nimeni pana akuma
Memorat
Tabara
Nu mai tace
*****

Karma: 20
Deconectat Deconectat

Mesaje: 216



Vezi Profilul
« Răspunde #16 : Februarie 15, 2007, 23:05:46 »

exemplul e intr-adevar gresit, (2+3<6) si totusi cum de nu a observat nimeni pana akuma

Chiar asa  Shocked Huh??
Poate s-a schimbat intre timp din greseala...sau poate cand s-a mutat site-ul desi ma cam indoiesc ... Think

 Embarassed
Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #17 : Februarie 16, 2007, 23:01:58 »

Si totusi, nu modifica nimeni ... ?
Memorat

....staind....
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #18 : Februarie 16, 2007, 23:09:47 »

Gata, am modificat.
Memorat
peanutz
Nu mai tace
*****

Karma: 10
Deconectat Deconectat

Mesaje: 296



Vezi Profilul
« Răspunde #19 : Februarie 16, 2007, 23:24:16 »

Modificarile se aplica dupa un timp? Sau cum functioneaza chestia?
Memorat

....staind....
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #20 : Februarie 17, 2007, 00:06:53 »

Nu, pur si simplu acum am avut timp  Whistle ... sorry
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #21 : Martie 31, 2007, 18:30:55 »

 ](*,)Nu-mi iese nicicum cautarea binara la problema asta si ma chinui de ceva timp Brick wall

Acuma am ajuns sa fac in felul urmator:
2 foruri, i=0..n-1, j=i+1..n-1 prin care fixez a si b
cautarea binara in cel de-al doilea for:
x = j+1, y = n-1;
m = (x+y)/2;
daca a[ i ]+a[j] >= a[m] atunci
x = m+1
si un contor temporar este m-j...

in afara while-ului de la cautarea binara, adun la contorul final contorul temporar... merge pe exemplul din enunt, dar pe altele intr-adevar nu.. ce gresesc?

apropo, cu hashing cum ar fi? exista vreun articol de inceput despre asta?

EDIT: am rezolvat cu cautarea binara pana la urma.. dar as fi interesat s-o fac si cu hashing, as putea citi undeva despre asta?
« Ultima modificare: Martie 31, 2007, 18:33:24 de către Ionescu Vlad » Memorat
stef2n
Nu mai tace
*****

Karma: 218
Deconectat Deconectat

Mesaje: 641



Vezi Profilul
« Răspunde #22 : Martie 31, 2007, 18:50:00 »

http://infoarena.ro/tabele-hash-scurta-prezentare
http://infoarena.ro/tabele-hash-prezentare-detaliata
« Ultima modificare: Februarie 19, 2008, 10:43:04 de către Stefan Istrate » Memorat

Exista 10 categorii de oameni: cei care inteleg sistemul binar si cei care nu il inteleg.
gicurez
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #23 : Februarie 19, 2008, 05:54:10 »

Salut

Eu sunt inca la inceput am cautat pe net informatii despre cautarea binara si am gasit cate ceva; din pacate nu pot sa-mi dau seama cum sa fac exercitiul asta; am doua foruri care imi calculeaza suma a doua numere din vector si dupa accea fac o cautare binara care imi da un raspuns aproximativ ,sau daca are, unul exact; si dupa aceea calculez nr. total de triunghiuri pe care pot sa-l obtin obtinut pe baza cautarii; dar nu-mi da bine; mie pe toate testele facute de mana si cele de pe generator imi iese bine; verific cu o sursa care foloseste 3 foruri; deci tarasenia apare ori la cautarea pe care o fac ori la cum calculez nr total de triunghiuri; daca vreti pot sa postez cautarea binara pe care o fac eu sa va uitati.
Rugamintea mea era cum ar trebui sa arate cautarea binara aici si cum se calculeaza nr total de triunghiuri;
eu il fac asa: nr:=nr+c-b-1; unde b este numarul din cel de-al doilea for; si c primul nr mai mare decat suma primelor 2 nr, adica

for a:=1 to n do
   for b:=a+1 to n do
       begin
        c:=find(a+b);
        nr:=nr+c-b-1;
       end;

Unde gresec?Huh??

sunt inca la inceput si asa ca va rog sa nu va suparati daca pun intrebari stupide... Embarassed Embarassed
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #24 : Februarie 23, 2008, 14:10:08 »

cautare binara: v:vectorul... p si u poz intre care cauti v [ i ] +v [ j ] ;

Cod:
int cautare(int p, int u)
{
  int m;
  m=(p+u)/2;
  while (p<=u){
      if ((v[m]<=v[i]+v[j] && v[m+1]>v[i]+v[j]) || (v[m]<=v[i]+v[j] && m==n-1))
  return m;
  else if (v[m]<=v[i]+v[j] && v[m+1]<=v[i]+v[j]) {
  p=m+1;
  m=(p+u)/2;
  }
  else {
  u=m-1;
  m=(p+u)/2;
  } 
  }
  return 0;
}

sper ca intelegi  Tongue

aaa vectorul e de la 0 la n... daca il ai de la 1 la n pune n in loc de n-1 la primu if in while

si vezi ca tu trebuie sa ai
 
Cod:
..................................
for (i=0;i<n-2;++i)
    for (j=0;j<n-1;++j){
         caut(1,n);
    }
....................................
« Ultima modificare: Februarie 23, 2008, 14:24:58 de către Andrei Grigorean » Memorat
Pagini: [1] 2 3   În sus
  Imprimă  
 
Schimbă forumul:  

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