Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 712 Albinuta  (Citit de 4228 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« : Mai 24, 2008, 12:31:49 »

Aici puteţi discuta despre problema Albinuta.
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #1 : August 31, 2008, 14:33:03 »

Am si eu o problema: aplic metoda prezentata pe wikipedia, si anume:
  • deplasez prin stari doi "pointeri" : la fiecare moment pe primul il deplasez cu o pozitie, pe celalalt cu 2 => intre ei va fi o "diferenta" de i pasi dupa i deplasari de acest gen
  • cand cei doi "pointeri" ajung in aceeasi stare, am gasit i = un multiplu al perioadei principale
  • o iau de la capat cu pointerii : diferenta sa fie i intre ei si ii deplasez cate o pozitie la fiecare pas... astfel identific incepand cu ce pozitie cicleaza (si implicit acel X din descrierea oficiala a solutiei)
  • determin perioada principala prin deplasari ale unui pointer cu cate o pozitie

Problema mea e la partea de comparare a starilor: verific daca se afla in acelasi loc si daca restul la impartirea cu M a celor doi timpi este acelasi. Daca folosesc M = cmmmc lungimilor atunci primesc cateva WA, dar primele 2 teste le iau. Daca folosesc M = produsul lungimilor atunci iau 90, dar primele 2 teste TLE.

Codul e mai graitor:
Cod:
      int M = D[1], C = D[1];    
      for ( int i=2; i<=N; ++i )   
          M *= D[i], C = D[i]!=1 ? GCD(C,D[i]) : C;   
      M /= C;   
   
     int h = 1, th = 1, t = 1, tt = 1;       // metoda hare / tortoise :P 
     do { 
         next(h, th); next(h, th); next(t, tt); 
     } while ( (t!=h) || ((th%M)!=(tt%M)) );

Cod:
     int M = 1;  
     for ( int i=1; i<=N; ++i ) M *= D[i]; 
   
     int h = 1, th = 1, t = 1, tt = 1;       // metoda hare / tortoise :P 
     do { 
         next(h, th); next(h, th); next(t, tt); 
     } while ( (t!=h) || ((th%M)!=(tt%M)) );
« Ultima modificare: August 31, 2008, 15:32:18 de către Sima Cotizo » Memorat
emilian.miron
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« Răspunde #2 : Septembrie 13, 2008, 17:58:53 »

Cred ca greseala e de la cum ai inteles articolul de pe wikipedia si nu de la cum consideri M(cmmmc sau produsul).
Dupa ce s-au intalnit cei doi pointeri ai gasit lungimea inceputului pana la ciclu + lungimea ciclului, resetezi contorul si trebuie sa-l mai parcurgi o data ca sa afli lungimea ciclului si apoi sa poti afla lungimea inceputului scazand din prima valoare.
Memorat
bulgarash
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 8



Vezi Profilul
« Răspunde #3 : Aprilie 04, 2011, 13:36:33 »

eu nu prea inteleg cum albinuta ajunge in mom 13 la nodul 6, nu ar trebui sa ajunga la nodul 2?
Memorat
GaborGabriel
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #4 : Aprilie 15, 2011, 09:38:24 »

Da, e putin ciudat enuntul, nu e foarte clar  Think. Singura explicatie logica la care am ajuns incercand sa imi dau seama cum s-a ajuns la T=13 pe 6 e urmatoarea :

Avem sirul initial.
1 6 2 9 5

In enunt spune ca va ajunge in momentul T+1 pe pozitia dorita, mai exact :
1 6 2 9 5 1 6 2 9 5   1   6   2   9  5         ( e aceeasi lista de adiacenta doar ca multiplicata, ca sa vedem exact pozitiile )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
In T=12 vom fi pe nodul 6, iar pentru ca spune ca in T+1 (conform enuntului) vom ajunge pe pozitia dorita, inseamna ca nodul ales e nodul 2. Il eliminam din lista, iar noul sir va fi  1 6 9 5 .

Pentru T=13, avem sirul 1 6 9 5.

1 6 9 5 1 6 9 5 1 6   9   5   1   6   9 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Iar de aici se vede clar ca pe pozitia T+1 = 14 avem nodul 6.
Nu sunt foarte sigur, daca aveti alte idei, ar fi interesant sa le postati. Think
Memorat
ionutz32
Strain


Karma: 16
Deconectat Deconectat

Mesaje: 18



Vezi Profilul
« Răspunde #5 : Aprilie 15, 2011, 10:38:44 »

Nu se elimina nimic din lista, in enunt spune clar ca, la momentul T, se numara circular T pozitii din lista nodului curent.
In exemplu, la momentul 12 ai lista:
1, 6, 2, 9, 5.
Daca o repeti, vine 1, 6, 2, 9, 5, 1, 6, 2, 9, 5, 1, 6, 2, 9, 5, …
Al 12-lea numar e 6, deci la momentul 13 vei fi la nodul 6. Dupa care se face acelasi lucru, insa cu lista de adiacenta a nodului 6 (si se vor numara 13 pozitii), nu tot cu lista asta, daca nu cumva asta e lista nodului 6.
« Ultima modificare: Aprilie 15, 2011, 10:43:46 de către Ilie Ionut » Memorat
GaborGabriel
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #6 : Aprilie 15, 2011, 10:54:54 »

Da, cred ca ai dreptate. Scuze pentru postul inutil.
Memorat
Dddarius95
Client obisnuit
**

Karma: 30
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #7 : Octombrie 01, 2013, 13:52:34 »

Am incercat problema Albinuta . Am o problema cu algoritmul Floyd de detectie a ciclurilor intr.un sir.
am facut la fel ca pe wiki . Pe albinuta iau doar 15p.
intr-adevar da incorect.pe unul din testele oficiale sirul ar fi
Cod:
1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 2 4 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 5 2 4 1 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 5 2 4 1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 1 3 5 2 4 1 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 2 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 2 4 1 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 2 4 5 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 2 4 1 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 1 3 5 2 4 1 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3
iar algoritmul meu imi returneaza miu=4 lambda=3 ceea ce este gresit...

Cod:


#define F(i) i+1

void find()
{
    tortoise = F(0);
    hare =F(F(0));
    while (x[tortoise] != x[hare])
    {
         tortoise = F(tortoise);
         hare = F(F(hare));
    }

}

void find_miu()
{
    miu=0;
    tortoise = 0;
    while (x[tortoise] != x[hare])
    {
        tortoise = F(tortoise);
        hare = F(hare);
        miu++;
    }

}

void find_lambda()
{
    lambda=1;
    hare = F(tortoise);
    while (x[tortoise] != x[hare])
    {
        hare = F(hare);
        lambda++;
    }
}


LE: ma poate ajuta cineva?Very Happy
Memorat
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« Răspunde #8 : Octombrie 01, 2013, 15:28:50 »

Am incercat problema Albinuta . Am o problema cu algoritmul Floyd de detectie a ciclurilor intr.un sir.
am facut la fel ca pe wiki . Pe albinuta iau doar 15p.
intr-adevar da incorect.pe unul din testele oficiale sirul ar fi
Cod:
1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 2 4 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 5 2 4 1 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 5 2 4 1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 1 3 5 2 4 1 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 2 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 2 4 1 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 2 4 5 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 2 4 1 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 1 3 5 2 4 1 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3
iar algoritmul meu imi returneaza miu=4 lambda=3 ceea ce este gresit...

Cod:


#define F(i) i+1

void find()
{
    tortoise = F(0);
    hare =F(F(0));
    while (x[tortoise] != x[hare])
    {
         tortoise = F(tortoise);
         hare = F(F(hare));
    }

}

void find_miu()
{
    miu=0;
    tortoise = 0;
    while (x[tortoise] != x[hare])
    {
        tortoise = F(tortoise);
        hare = F(hare);
        miu++;
    }

}

void find_lambda()
{
    lambda=1;
    hare = F(tortoise);
    while (x[tortoise] != x[hare])
    {
        hare = F(hare);
        lambda++;
    }
}


LE: ma poate ajuta cineva?Very Happy

M-am uitat pe ultima ta sursa si mi se pare ca tu consideri ca sirul de raspunsuri e ciclic... ceea ce nu e adevarat, ci mai exact graful in care nodurile sunt de forma (nod_graf_initial, timp % C) unde C = cmmc(L1, L2, ..., LK)  (adica cmmc-ul lungimilor listelor de adiacenta)
Memorat
Dddarius95
Client obisnuit
**

Karma: 30
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« Răspunde #9 : Ianuarie 10, 2014, 19:38:23 »

Am incercat problema Albinuta . Am o problema cu algoritmul Floyd de detectie a ciclurilor intr.un sir.
am facut la fel ca pe wiki . Pe albinuta iau doar 15p.
intr-adevar da incorect.pe unul din testele oficiale sirul ar fi
Cod:
1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 2 4 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 5 2 4 1 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 5 2 4 1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 1 3 5 2 4 1 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 2 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 2 4 1 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 2 4 5 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 2 4 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 2 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 2 4 1 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 1 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 1 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 1 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 5 1 3 5 2 4 1 3 5 2 3 5 1 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 3 5 2 3 5 2 3 5 2 3 5 2 3 4 1 2 4 1 3 5 2 3
iar algoritmul meu imi returneaza miu=4 lambda=3 ceea ce este gresit...

Cod:


#define F(i) i+1

void find()
{
    tortoise = F(0);
    hare =F(F(0));
    while (x[tortoise] != x[hare])
    {
         tortoise = F(tortoise);
         hare = F(F(hare));
    }

}

void find_miu()
{
    miu=0;
    tortoise = 0;
    while (x[tortoise] != x[hare])
    {
        tortoise = F(tortoise);
        hare = F(hare);
        miu++;
    }

}

void find_lambda()
{
    lambda=1;
    hare = F(tortoise);
    while (x[tortoise] != x[hare])
    {
        hare = F(hare);
        lambda++;
    }
}


LE: ma poate ajuta cineva?Very Happy

M-am uitat pe ultima ta sursa si mi se pare ca tu consideri ca sirul de raspunsuri e ciclic... ceea ce nu e adevarat, ci mai exact graful in care nodurile sunt de forma (nod_graf_initial, timp % C) unde C = cmmc(L1, L2, ..., LK)  (adica cmmc-ul lungimilor listelor de adiacenta)

Asa e . Ai avut dreptate.Intelesesem totul gresit.  multumesc!
Am rezolvat! 100p  ( http://www.infoarena.ro/job_detail/1076947 )  Yahoo! Yahoo! Yahoo!
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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