Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 691 Fibo  (Citit de 4420 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« : Aprilie 06, 2008, 14:32:43 »

Aici puteţi discuta despre problema Fibo.
Memorat
andrici_cezar
De-al casei
***

Karma: -47
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« Răspunde #1 : Aprilie 25, 2008, 14:46:20 »

ce are problema mea ........ nu inteleg de loc Read This!
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #2 : Aprilie 25, 2008, 14:49:00 »

Numerele nu incap pe longint. Trebuie sa implementezi numere mari. Gasesti un articol care sa te ajute aici.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
andrici_cezar
De-al casei
***

Karma: -47
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« Răspunde #3 : Aprilie 25, 2008, 18:17:59 »

am incecat si imi da eroare de compilare??? am incercat int64
dar nu merge Brick wall
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #4 : Aprilie 25, 2008, 20:13:50 »

int64 nu inseamna numere mari.
Retine numerele sub forma de vectori.
Memorat
andrici_cezar
De-al casei
***

Karma: -47
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« Răspunde #5 : Aprilie 26, 2008, 10:03:19 »

ms am luat 50 puncte... dati-mi si mie niste teste mai mare sa vad daca imi da bn... adica 1000000, 500000,600000,etc
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« Răspunde #6 : Mai 02, 2008, 11:10:42 »

Nr-ele nu sunt deloc mari. Maximul nu depaseste 1 000 000 asta inseamna ca iti intra in long, dar inseamna mult mai mult de atat. Daca chiar vrei sa incerci foloseste long long.
Iar nr-ele de forma palindrom sunt destul de putine. Ok cred ca ti-am dat destule indicii. Bafta!
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #7 : Mai 30, 2008, 22:22:33 »

Generez toate numerele in baza doi ( cu reprezentarile binare ale unui contor de la 1 la 2^16). Reprezentarile binare care sunt palindroame le transform in numar in baza 10 [considerandu`le scrise in sistem fibo), iar daca numerele in baza 10 sunt mai mici ca n, incrementez solutia. Problema e ca iau WA. Nu inteleg de ce ar fi nevoie de numere mari [reprezentarea binara o tin sub forma de vector]. Poate cineva sa ma ajute? Problema e banala, insa ...
« Ultima modificare: Mai 30, 2008, 22:38:10 de către Marcu Florian » Memorat
Protoman
Infoarena Monthly
De-al casei
*****

Karma: 119
Deconectat Deconectat

Mesaje: 128



Vezi Profilul
« Răspunde #8 : Mai 30, 2008, 22:53:00 »

Tu generezi toate posibilitatile pana la 2^16.
Poti incerca altceva: sa generezi doar jumatate din numar si apoi sa ii faci oglinda pastrand complexitatea Wink

Prin "Oglinda" ma refer la:
ai generat 10010
oglinda care o faci tu va fi: 10010 + 01001 sau 1001 0 + 1001 din astea iti vor iesi palindroamele:
1001001001
100101001
« Ultima modificare: Mai 30, 2008, 23:01:32 de către Andrei Purice » Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #9 : Mai 31, 2008, 11:21:20 »

Intr-adevar. E buna indicatia. Multumesc. Totusi, nu inteleg de ce 010 nu este luat in considerare in exemplu.... Poate cineva sa ma lamureasca?
Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #10 : Mai 31, 2008, 11:37:33 »

In general numerele incep cu o cifra nenula.
Memorat
gabor_oliviu1991
Nu mai tace
*****

Karma: 28
Deconectat Deconectat

Mesaje: 200



Vezi Profilul
« Răspunde #11 : Mai 31, 2008, 14:20:17 »

daka imi da eroarea

Citat
user.cpp:47: error: 'strrev' was not declared in this scope

inseamna ca nu are compilatoru functia strrev ?
Memorat
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« Răspunde #12 : Mai 31, 2008, 14:38:04 »

Da, strrev nu este ANSI C.
Memorat
gabor_oliviu1991
Nu mai tace
*****

Karma: 28
Deconectat Deconectat

Mesaje: 200



Vezi Profilul
« Răspunde #13 : Iunie 17, 2008, 17:55:18 »

am facut un fel de brute la problema asta... am luat toate numerele de la 1 la 1 mil, leam transformat in baza 2, leam facut in baza fibonaci si daca erau mai mici ca N incrementam ceva. iau TLE pe 7 teste, deci iau 40 de pct. am incercat sa fac si cu preprocesare... tot asa, iau un iterator de la 1 la un milion si bag numerele intrun vector. de aici fac o cautare binara la cel mai mare numar mai mic decat N si afisez pozitia lui. de ce nu stiu, dar mie imi baga in vector doar pana pe la 17000. o idee sau daca am ceva gresala la implementare. merci anticipat Thumb up off-topic: HAI ROMANIA!!! medieval

LE: cu a doua varianta iau 50 de pct.

LE2: am luat in sfarsit 100. ideea e ca la ultimul test N depaseste 1 milion Brick wall
« Ultima modificare: Iunie 19, 2008, 18:14:21 de către gaboru corupt » Memorat
brainwashed20
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #14 : Ianuarie 02, 2011, 00:18:07 »

Ce as putea sa mai imbunatatesc la sursa asta ca sa imi iasa si ultimul test, ca practic solutia e cea oficiala..
Cod:
#include<cstdio>  
#include<cstring>
#include<bitset>

using namespace std;
 
#define DIM 31

int N, M=30, sol=1;

int fib[DIM] = {0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269};
 
inline int verif(int val) { 
    int max=0; 
register int i=M;
bitset <DIM> aux;

while(val<fib[i])
--i;
val-=fib[i]; aux[i]=1; 
if(i>max)
max=i;

for(; i && val; --i) { 
while(val<fib[i])
--i;
val-=fib[i]; 
aux[i]=1; 


for(i=1; i<=max/2; ++i)
if(aux[i]!=aux[max-i+1]) return 0; 

return 1;

 
int main() {
    freopen("fibo.in","r",stdin); 
    freopen("fibo.out","w",stdout); 
     
    register int i;

scanf("%d",&N); 
     
    for(i=2; i<=N; ++i) 
        sol+=verif(i);   
     
    printf("%d\n",sol); 
 
    return 0; 
Memorat
SebiSebi
Nu mai tace
*****

Karma: 76
Deconectat Deconectat

Mesaje: 306



Vezi Profilul
« Răspunde #15 : Septembrie 23, 2011, 14:51:29 »

Cat trebuie sa dea pentru 1 000 000 ? Multumesc anticipat! Very Happy
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #16 : Septembrie 23, 2011, 17:40:37 »

Cod:
1795
Memorat
TheNechiz
De-al casei
***

Karma: 30
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #17 : Februarie 14, 2013, 13:22:03 »

10x Thumb up
« Ultima modificare: Decembrie 11, 2013, 16:26:03 de către Birisan Razvan » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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