Afişează mesaje
|
Pagini: [1] 2 3
|
4
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Memorie Arbore de Intervale
|
: Septembrie 01, 2011, 17:56:05
|
nu inteleg ce vrei sa zici. eu pt 3 tin arborele de intervale asa: [1,4] / \ [1,2] [3,4] / \ / \ [1] [2] [3] [4]
1 / \ 2 3 / \ / \ 4 5 6 7
deasemenea vezi ca 2*x-1 (unde x e cea mai mica putere a lui 2 mai mare sau egala cu n) inseamna 2 [log2n]+1-1, unde [ x ], inseamna parte intreaga superioara a lui x
|
|
|
7
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 519 Modulo
|
: August 31, 2011, 17:01:08
|
pe sursa asta iei 90?? cred ca glumesti. in primul rand: teorema lui Fermat este a p-1=1(modulo p) (a nedivizibil cu p) in al doilea rand: teorema este valabila numai pentru p prim asa ca intrebarea este cum de iei 90. pe testul 2 3 3, sursa ta da 1, desi raspunsul este 2. problema se poate rezolva prin ridicare la putere in timp logaritmicdar avand in vedere dimensiunile mici ale lui c o idee ar fi sa vezi cand apare un ciclu in resturi in O(c) si de aici tot in O(c) sa gasesti raspunsul l.e.: scuze, nu am vazut postul lui George
|
|
|
10
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 496 Rj
|
: August 22, 2011, 17:09:58
|
imi cer scuze. nu m-am uitat sa vad daca problema are sursa libera, iar in postul initial nu era citirea. uite unde poti avea probleme la citire. dupa cum ti-am zis fgets se opreste daca da de un '\n' si atunci e mai bine sa citesti asa char c[150]; FILE * pFile; pFile=fopen("rj.in","r"); fscanf(pFile,"%d%d\n",&n,&m); for(i=0;i<n;i++){ fgets (c, m+1, pFile); aux=strlen(c)-1;//-1 este pt ca in sirul de caractere se citeste si '\n' for(j=0;j<aux;j++){ if(c[j]==' ')mat[i][j]=0; if(c[j]=='X')mat[i][j]=-1; if(c[j]=='R'){xr=i;yr=j;mat[i][j]=1;} if(c[j]=='J'){xj=i;yj=j;mat[i][j]=1;} } for (j=aux;j<m;j++) mat[i][j]=0; }
l.e.: vezi ca trebuie sa citesti asa n si m: fscanf(pFile,"%d%d\n",&n,&m); pt ca ramane un '\n' necitit
|
|
|
16
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 477 Alee
|
: August 20, 2011, 12:44:33
|
@robert: daca te uiti mai bine, o sa vezi ca mihai foloseste mat ca matrice de vizitati @mihai: fa asa functia lee ca e ceva mai rapid si mai simplu void Lee(){ c[1][1]=x1;c[1][2]=y1; for(p=1,u=1;p<=u;p++){ x=c[p][1]; y=c[p][2]; for(d=0;d<4;d++){ xnou=x+di[d]; ynou=y+dj[d]; if(OK(xnou,ynou)){ mat[xnou][ynou]=mat[x][y]+1; c[++u][1]=xnou; c[u][2]=ynou; if(xnou==x2 && ynou==y2){ return; } } } } } si inca ceva: defineste Nmax ca fiind 176 pt ca atunci cand definesti un vector de x elemente tu definesti elementele de la 0 la x-1
|
|
|
21
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 073 Perechi
|
: Iulie 15, 2011, 20:41:05
|
Oricum, daca esti interesat de problema cmmmc, e mai bine sa postezi acolo. Daca nu, atunci spune ca esti interesat de perechi. Uite un hint pentru perechi.
Daca ai n=a1d1*a2d2*...*akdk considera vectorul d. pentru fiecare element i te gandesti asa: 1. exista un caz in care si numarul x si numarul y au in componenta aidi. 2. exista un caz in care numarul x contine aidi, iar y are ai in componenta dar nu de suficient de multe ori. 3. exista un caz in care numarul y contine aidi, iar x are ai in componenta dar nu de suficient de multe ori.
nici x, nici y nu vor avea ai in componenta la un exponent mai mare de di.
Si nu depinde de cum alegi pentru i ca sa alegi pentru j.
Daca vreun admin/moderator considera ca am zis un prea mult il rog sa-mi stearga postul.
|
|
|
|