Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: [concurs] .Campion, Runda 6  (Citit de 5386 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
CezarMocan
Nu mai tace
*****

Karma: 252
Deconectat Deconectat

Mesaje: 567



Vezi Profilul
« : Ianuarie 21, 2011, 20:39:00 »

Duminica, 13 Februarie 2011, de la ora 9:00, va avea loc runda 6 a concursului .campion.
Memorat
DraStiK
Nu mai tace
*****

Karma: 131
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #1 : Februarie 09, 2011, 16:36:42 »

Runda asta e chiar duminica, sau e o greseala a celor de la campion?

Intreb asta, ca pana acuma tot timpul au fost rundele sambata, si chiar daca sambata asta e locala la matematica, nu cred ca tin cont de asta.

Stie cineva ceva? Very Happy
Memorat
andrei.12
Echipa infoarena
Nu mai tace
*****

Karma: 107
Deconectat Deconectat

Mesaje: 381



Vezi Profilul
« Răspunde #2 : Februarie 09, 2011, 17:34:57 »

Din cate stiu eu se incearca sa se tina cont de eventualele suprapuneri cu diverse olimpiade (cel putin info si mate). Eu cred ca de aceea s-a mutat runda duminica.

Daca nu esti convis poti sa le dai un mail celor de la campion sa ii intrebi Tongue
Memorat
eudanip
Echipa infoarena
Nu mai tace
*****

Karma: 307
Deconectat Deconectat

Mesaje: 702



Vezi Profilul
« Răspunde #3 : Februarie 10, 2011, 10:10:31 »

Sambata asta e locala la mate. Probabil acesta e motivul.
Memorat
scipianus
Nu mai tace
*****

Karma: 129
Deconectat Deconectat

Mesaje: 345



Vezi Profilul
« Răspunde #4 : Februarie 13, 2011, 11:05:32 »

Mda,aveti dreptate,mate a fost motivul(sau oarecum eu am fost motivul)
Cand am vazut runda 6 programata peste locala de mate am vorbit prin mail cu doamna Emanuela Cerchez si a fost de acord sa schimbe pe duminica.Si se pare ca a facut la fel pentru runda 8(cand pe 12 martie ar fi fost judeteana de mate),dar pentru runda 8 a fost programata din prima duminica fara sa mai am vreo implicatie  Smile .
Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #5 : Februarie 13, 2011, 13:05:49 »

eu am luat 90 la aliniere pentru ca nu respecta restrictiile Read This! ( n<300.000 - strict mai mic de 300.000 deci poate fi maxim 299.999). Nici problema cavaleri nu respecta restrictiile. (dar oricum nu imi merge pe teste cu n mai mare de 9973 )

Cod:
f=fopen("cavaleri.in", "r");
g=fopen("cavaleri.out","w");
fscanf(f, "%lld", &n);
a[1]=0;  a[2]=0; a[3]=4; a[4]=9; a[5]=13;
if(n<6)
{
fprintf(g, "%lld", a[n]);
return 0;
}
else
{
for(i=6; i<=n; i++)
{
a[i]=(a[i-1]%9973+(a[i-2]-2)%9973)%9973;
}
fprintf(g, "%lld", a[n]);
return 0;
}

Ce ar trebui modificat ca sa iau 100? http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=1189
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #6 : Februarie 13, 2011, 13:19:35 »

Cum vad care au fost problemele de la a x-a?
Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #7 : Februarie 13, 2011, 13:24:59 »

joct : http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=1190
cavaleri : http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=1189
Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #8 : Februarie 13, 2011, 15:43:23 »

eu am luat 90 la aliniere pentru ca nu respecta restrictiile Read This! ( n<300.000 - strict mai mic de 300.000 deci poate fi maxim 299.999). Nici problema cavaleri nu respecta restrictiile. (dar oricum nu imi merge pe teste cu n mai mare de 9973 )

Cod:
f=fopen("cavaleri.in", "r");
g=fopen("cavaleri.out","w");
fscanf(f, "%lld", &n);
a[1]=0;  a[2]=0; a[3]=4; a[4]=9; a[5]=13;
if(n<6)
{
fprintf(g, "%lld", a[n]);
return 0;
}
else
{
for(i=6; i<=n; i++)
{
a[i]=(a[i-1]%9973+(a[i-2]-2)%9973)%9973;
}
fprintf(g, "%lld", a[n]);
return 0;
}

Ce ar trebui modificat ca sa iau 100? http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=1189


Gandeste-te cum te incurca "-"ul ala din: (a[i-2]-2)%9973.

LE:Nu ai nevoie de long long.
Memorat
scipianus
Nu mai tace
*****

Karma: 129
Deconectat Deconectat

Mesaje: 345



Vezi Profilul
« Răspunde #9 : Februarie 13, 2011, 16:40:46 »

eu am luat 90 la aliniere pentru ca nu respecta restrictiile Read This! ( n<300.000 - strict mai mic de 300.000 deci poate fi maxim 299.999). Nici problema cavaleri nu respecta restrictiile. (dar oricum nu imi merge pe teste cu n mai mare de 9973 )

Cod:
f=fopen("cavaleri.in", "r");
g=fopen("cavaleri.out","w");
fscanf(f, "%lld", &n);
a[1]=0;  a[2]=0; a[3]=4; a[4]=9; a[5]=13;
if(n<6)
{
fprintf(g, "%lld", a[n]);
return 0;
}
else
{
for(i=6; i<=n; i++)
{
a[i]=(a[i-1]%9973+(a[i-2]-2)%9973)%9973;
}
fprintf(g, "%lld", a[n]);
return 0;
}

Ce ar trebui modificat ca sa iau 100? http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=1189


Idee pentru problema Aliniere ,grupa S:
Daca ai fi luat pe foaie ai fi observat asta :
n=1   1
n=2   2
n=3   3
n=4   5
n=5   8
n=6   13
n=7   21   etc.   deci Fibonacci
Si ideea e ca nu trebuie sa generezi termenii fibonacci,ca doar al 300000-lea termen e imens  Tongue
Folosind (A+B)%C = ((A%C)+(B%C))%C
ar rezulta urmatorul cod :
Cod:
nr=2;
while(nr<n)
{
aux=r2;
r2=(r1+r2)%9973;
r1=aux;
nr++;
}
fout<<r2<<"\n";
cu initializarile nr=0,r1=1,r2=2 si luat separat cazurile n==1 si n==2

P.S. : precizez ca am luat 100 pct cu asta  Smile
P.S2. : la problema Cavaleri nu mai este fibonacci dar probabil tot gasesti o regula pentru sir ca sa aplici analog (A+B)%C = ((A%C)+(B%C))%C  Smile
« Ultima modificare: Februarie 13, 2011, 17:10:38 de către Olariu Ciprian » Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #10 : Februarie 13, 2011, 19:13:40 »

La problema de la grupa small am luat 90 de puncte pentru ca am declarat un vector de 300.000 ...dar nu au fost respectate restrictiile si trebuia sa il declar 300001 ... iar la problema de la medium ... m-am gandit ca e de la '-'-ul ala ... adica daca bag un n mai mare decat 9973 imi da o valoare negativa... ma ajuta cineva?  Mihai... cum ma incurca minusul ala?  Brick wall
Memorat
auRSTAR
Strain


Karma: 15
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« Răspunde #11 : Februarie 13, 2011, 19:21:53 »

La problema de la grupa small am luat 90 de puncte pentru ca am declarat un vector de 300.000 ...dar nu au fost respectate restrictiile si trebuia sa il declar 300001 ... iar la problema de la medium ... m-am gandit ca e de la '-'-ul ala ... adica daca bag un n mai mare decat 9973 imi da o valoare negativa... ma ajuta cineva?  Mihai... cum ma incurca minusul ala?  Brick wall

Minusul ala te incurca daca a[i-1] e divizibil cu 9973 . Poti face in felul urmator a=(a[i-1]+a[i-2]+9971)%9973 .
Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #12 : Februarie 13, 2011, 19:26:24 »

La problema de la grupa small am luat 90 de puncte pentru ca am declarat un vector de 300.000 ...dar nu au fost respectate restrictiile si trebuia sa il declar 300001 ... iar la problema de la medium ... m-am gandit ca e de la '-'-ul ala ... adica daca bag un n mai mare decat 9973 imi da o valoare negativa... ma ajuta cineva?  Mihai... cum ma incurca minusul ala?  Brick wall

Minusul ala te incurca daca a[i-1] e divizibil cu 9973 . Poti face in felul urmator a=(a[i-1]+a[i-2]+9971)%9973 .

Sau daca e restul 1, dupa ce scazi 2, devine negativ.
Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #13 : Februarie 13, 2011, 19:40:31 »

multumes de idee... acum functioneaza... pacat ca nu mi-am dat seama in timpul concursului  Fool
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #14 : Februarie 14, 2011, 09:21:22 »


M-am uitat peste probleme. Am vazut ca de 3 runde la clasa a x-a se dau probleme de combinatorica. Credeti ca e normal sa se dea astfel de probleme? Nu cred ca scopul unui concurs de programare este ghicirea unei formule sau copierea problemelor din unele culegeri. Noi nici macar nu am ajuns la matematica la probleme de numarare. Stiu ca nu sunt obligat sa particip dar poate ar trebui sa se dea si altfel de probleme.
Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #15 : Februarie 14, 2011, 11:24:35 »

da asa este. Noi deabia vinerea trecuta am facut "Multimi finite ordonate" si "reguli de numarare"... si ca sa spun cinstit de regula aia mi-am dat seama din intamplare. Am facut un back pentru generarea combinarilor si am pus conditia ca
Cod:
int valid ( int k)
{
int i;
for(i=1; i<=k; i++)
if( (x[i]==x[k]&&i!=k) || ( abs(x[i]-i)>1 && abs(x[i]-i)!=n-1))
return 0;

return 1;
}



... si cand ma jucam cu programul asta sa imi faca combinari de n luate cate n am constatat ca exista acea regula. pe care nu am fost in stare sa o fac cu modulo ( nu mi-am dat seama ca in loc de -2 pot sa pun +9971) ... si oricum si daca faceam asa luam 90 pentru ca testul doi nu respecta restrictia. Eu nu sunt de acord cu astfel de probleme... adica informatica fara matematica nu se poate dar asta a fost aproape numai matematica... Eh?
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #16 : Februarie 14, 2011, 14:56:05 »

@Petru Scopul problemelor de combinatorica nu este sa ghicesti o formula sau sa le cauti prin carti. Am auzit legende despre o a 3-a metoda , gen sa te prinzi singur de o recurenta Smile. Si totusi uitandu-ma pe monitorul tau ma asteptam sa fi realizat deja ca nu prea are multa legatura 'materia de la clasa' cu concursurile. Eu vad ca ai rezolvate si probleme care necesita calcularea recurentei prin exponentiere rapida de matrici. Vrei sa zici ca ai invatat asta la scoala ? Smile

@Catalin
Daca stai putin si te gandesti, matematica necesara pentru probleme de numarare de clasa a 10-a e destul de elementara.
Memorat
S7012MY
Nu mai tace
*****

Karma: 26
Deconectat Deconectat

Mesaje: 648



Vezi Profilul
« Răspunde #17 : Februarie 14, 2011, 16:12:57 »

A treia metoda e tot ghicire. Nu cred ca sta cineva sa demonstreze matematic recurenta. Poc  Gandeste-te ca sunt multi care participa la campion si care nu lucreaza suplimentar.
Memorat
Oancea.Catalin
Client obisnuit
**

Karma: -3
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #18 : Februarie 14, 2011, 16:34:23 »

NU... normal ca nu folosesc informatica de la clasa sa rezolv problemele de pe campion si infoarena ( pe infoarena am lucrat mai putin) insa nu sunt prea incantat de problemele de combinatorica cu regula de recurenta facuta sa te omoare... Brick wall ( nu zic ca asta a fost prea grea...dar se poate si mai rau)  si asa cum am mai spus eu deabia acum cateva zile am facut permutari si aranjamente ( la mate )... dar nu am scuza...deabia acum un an ( cand am intrat la liceu )mi-am dat seama ca vreau sa fac informatica la un nivel mai inalt.  Fool
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #19 : Februarie 14, 2011, 19:51:13 »

A treia metoda e tot ghicire. Nu cred ca sta cineva sa demonstreze matematic recurenta. Poc  Gandeste-te ca sunt multi care participa la campion si care nu lucreaza suplimentar.

Nu, eu ziceam sa deduci recurenta, nu sa o demonstrezi dupa ce ai transcris-o din stele . De exemplu numarul de combinari de n luate cate k. Nu stii formula ,nu stii recurenta, stii doar definitia. O iei ca orice problema de dinamica.
Vrei sa calculezi starea C[ i ] [ j ]. Te gandesti cum o poti calcula din stari mai mici calculate deja. Comparativ cu combinarile din multimi de  i - 1 elemente , mai ai un element nou ( i ). Elementul asta il poti alipi la o combinare de i - 1 luate cate j - 1 si obtii o combinare de i luate cate j (1). Sau poti sa nu-l alipesti unei combinari de i - 1 luate cate j si aceasta devine tot o combinare de i luate cate j (2).


De aici recurenta :
C[ i ][ j ] = C[i - 1][j - 1] (1) + C[i - 1][j] (2).

N-a fost nimic de ghicit aici Smile
Daca eventual esti nesigur pe rationament, scrii un back in 5 minute sa te verifici.
Bineinteles ca se intampla sa te prinzi de recurenta generand valorile cu back, dar odata ce se complica starile nu prea mai merge.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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