Pagini: [1] 2 3 ... 5   În jos
  Imprimă  
Ajutor Subiect: 027 Loto  (Citit de 46953 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
fluffy
Echipa infoarena
De-al casei
*****

Karma: 71
Deconectat Deconectat

Mesaje: 146



Vezi Profilul
« : Aprilie 01, 2004, 00:33:16 »

Aici puteţi discuta despre problema Loto.
Memorat
ManolacheAdrian
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« Răspunde #1 : Martie 14, 2005, 11:23:44 »

Am trimis 3 variante de solutii la problemea dupa cum urmeaza:
   1. Backtracking si primesc OK pe 5,6, TLE pe ultimele trei teste si WA in rest
    2. Solutia cu 6 for-uri si primesc WA pe 1..4 OK pe 5 si TLE in rest
    3. Solutia cu cautare binara si primesc OK pe 5,6 si WA in rest

Acuma cred ca nu mi-a m-ai ramas decat sa-mi iau lumea in cap si sa plec de acasa, asta daca nu binevoieste  Twisted Evil  cineva sa-mi dea vreun test
sa vad si eu unde gresesc.
Memorat
rss1987
Strain


Karma: -6
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #2 : Martie 14, 2005, 12:24:48 »

Belea..daca nici solutia de N^6 n-o scrii corect?..nu cred ca o s-o faci prea curand. Trebuie sa te apuci serios de DEBUG... :lol:

uite aici o solutie N^6 corecta
compar-o cu a ta si vezi "diferenta"

Cod:

#include<stdio.h>
#define MAXN 101

FILE *in=fopen("loto.in","r"),*out=fopen("loto.out","w");
int N,S,V[MAXN];

void citesteDate()
{int i;
  fscanf(in,"%d %d",&N,&S);
  for(i=1;i<=N;i++)
     fscanf(in,"%d",&V[i]);
  fclose(in);
}

void proceseaza()
{int i,j,k,l,m,n;
  for(i=1;i<=N;i++)
      for(j=1;j<=N;j++)
         for(k=1;k<=N;k++)
             for(l=1;l<=N;l++)
                 for(m=1;m<=N;m++)
                     for(n=1;n<=N;n++)
                        if (V[i]+V[j]+V[k]+V[l]+V[m]+V[n]==S)
                           {fprintf(out,"%d %d %d %d %d %d\n",V[i],V[j],V[k],V[l],V[m],V[n]);
fclose(out);
return;}
 fprintf(out,"-1\n");
 fclose(out);
}

                   

 

int main()
{
 citesteDate();
 proceseaza();
 return 0;
}


Iei pe ea exact 35p daca o copiezi corect. Tongue  

Bafta la cautare N^3 * log(N^3)!

[edited by svalentin] foloseste [*code*][*/code*] (fara *) pentru a formata o sursa corect
Memorat

RSS
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #3 : Martie 14, 2005, 12:40:55 »

Sau n^3.
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
ManolacheAdrian
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« Răspunde #4 : Martie 14, 2005, 12:52:40 »

dupa ce nu dormi 48 de ore ajungi sa nu mai vezi bine...
Memorat
cristy
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 136



Vezi Profilul
« Răspunde #5 : Martie 14, 2005, 15:01:32 »

Eu am facut cu un back recursiv optimizat si am luat 70 de puncte dar totusi nu cred ca se rezolva cu back pentru ca sunt prea mari datele...dar daca faci cu un back destul de bun..faci peste 60 de pct...
Memorat

... lipsa de inspiratie ...
ManolacheAdrian
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« Răspunde #6 : Martie 14, 2005, 16:00:56 »

incearca back in heap poti sa iei 85+
Memorat
skipy
Strain
*

Karma: 8
Deconectat Deconectat

Mesaje: 46



Vezi Profilul
« Răspunde #7 : Martie 14, 2005, 17:06:48 »

Din cate tin eu minte, am rezolvat problema f. usor: n^3 log (n^3), cu o cautare binara. Cred ca ar trebui sa fie usor acum...
Memorat

Cheap VR WoW could destroy modern society...
cavendish
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 43



Vezi Profilul WWW
« Răspunde #8 : Martie 14, 2005, 22:12:17 »

Eu am facut N^3 * T, unde T ii timpu pt operatii cu mapurile din stl Tongue .
Memorat
rss1987
Strain


Karma: -6
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #9 : Martie 15, 2005, 08:04:26 »

greco: si cati MB ai folosit pt. N^3. As presupune ca 37.5...nu Question ...la ONI trebuie sa te incadrezi in 15, deci e numai buna in N^3*log(N^3). wink
Memorat

RSS
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #10 : Martie 15, 2005, 19:18:47 »

#define vmax 1000001

int n, m, s, lg, w[wmax], v[vmax][3], sol1, sol2, found;

--------------------

De fapt, daca ma gandesc mai bine (am facut de ceva timp problema) din 2 pasi de n^3 log n numai unul l-am redus la n^3.  Mr. Green
Imi cer scuze pentru inconvenientele cauzate.  Embarassed
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
rss1987
Strain


Karma: -6
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #11 : Martie 16, 2005, 08:56:35 »

Se mai intampla...
 Very Happy Se poate si in N^3 da cum ziceam mananca multa memorie...
Memorat

RSS
cristi8
Vizitator
« Răspunde #12 : Aprilie 01, 2005, 22:17:38 »

imi explica si mie cineva cum se face cautarea aia binara ?

..eu am facut problema cu 3 hash-table-uri... suma care se poate obtine cu 1,2 sau 3 numere..
..si dupa aia am facut n^3 pt primele 3 numere si am cautat restul sumei in ultimul hash..
Memorat
druid
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 27



Vezi Profilul
« Răspunde #13 : Aprilie 03, 2005, 13:03:22 »

Eu am facut un vector pt toate sumele posibile de 3 numere din fisierul de intrare... si apoi sortez vectorul asta si il parcurg de la inceput si pt fiecare suma fac cautare binare pt S-suma. Daca exista atunci reconstitui nr cu care s-a obtinut suma si S-suma. Trebuie ceva optimizari pt ultimele teste.
Memorat
horax
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 12



Vezi Profilul WWW
« Răspunde #14 : August 02, 2005, 23:41:46 »

Citat din mesajul lui: druid
Eu am facut un vector pt toate sumele posibile de 3 numere din fisierul de intrare... si apoi sortez vectorul asta si il parcurg de la inceput si pt fiecare suma fac cautare binare pt S-suma. Daca exista atunci reconstitui nr cu care s-a obtinut suma si S-suma. Trebuie ceva optimizari pt ultimele teste.


Am facut exact ca si tine si pe ultimele 4 teste iau timp depasit.
Ce optimizari ai facut?
Eu am ordonat cu quick sort am facut cautare binara si totusi am timp depasit.
 Brick wall
Memorat

Horax
u-92
Vizitator
« Răspunde #15 : August 03, 2005, 07:57:38 »

eu tot qsort+cautare binara am folosit si mi s-a incadrat f. bine in timp.. poate nu te opresti cand gasesti solutie.. nustiu de la ce altceva ar putea fi
Memorat
horax
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 12



Vezi Profilul WWW
« Răspunde #16 : August 03, 2005, 16:31:43 »

Citat din mesajul lui: u-92
eu tot qsort+cautare binara am folosit si mi s-a incadrat f. bine in timp.. poate nu te opresti cand gasesti solutie.. nustiu de la ce altceva ar putea fi


ma opresc, fac tot asa cum ai zis tu si totusi ... Embarassed
Memorat

Horax
vladut.forum
Vizitator
« Răspunde #17 : August 03, 2005, 16:46:05 »

mah daca nimik altceva nu poate fii...atunci
nu faci bine cautarea binara
vezi cand intializezi left sa cresti cu unu
si cand initializezi right sa scazi cu unu
deci verifica sa fie
while (left<=right) {

tra la la
if (conditie1) {solutie; ma opresc;}
if (conditie2) left=(left+right)/2+1;
else right = (left+right)/2-1;
}
ceva imi spune ca sigur e asta
verifica si spunemi
Memorat
Dorin
Client obisnuit
**

Karma: 7
Deconectat Deconectat

Mesaje: 73



Vezi Profilul
« Răspunde #18 : August 04, 2005, 16:51:19 »

la completarea vectorului cu sumele de trei numere, pana unde trebuie completat???Think
eu cred ca din cauza aia iau TLE la unele teste  :lol:
Memorat

Smile ! Smile ... tomorow will be worse
VladS
Vizitator
« Răspunde #19 : August 04, 2005, 16:59:03 »

Pana la capat (N^3 numere). Nu de aici iei TLE.
Memorat
Dorin
Client obisnuit
**

Karma: 7
Deconectat Deconectat

Mesaje: 73



Vezi Profilul
« Răspunde #20 : August 04, 2005, 17:08:04 »

Ok atunci e de la alteceva shi o sa mai optimizez poate intr-un final  iau shi eu 100 p.  Mr. Green
Memorat

Smile ! Smile ... tomorow will be worse
Dorin
Client obisnuit
**

Karma: 7
Deconectat Deconectat

Mesaje: 73



Vezi Profilul
« Răspunde #21 : August 07, 2005, 22:38:04 »

iau 95 de p WA testul unu  nu avetzi vreo idee de ce nu merge Question

pe alte rezolvari luam punctaj pe testul 1 ce ar pute sa aiba
Huh
Memorat

Smile ! Smile ... tomorow will be worse
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #22 : August 08, 2005, 10:42:48 »

Fa-ti un generator de teste si verifica ce da programul tau cu solutia N^6. O sa-ti foloseasca si la alte probleme de pe infoarena si in concursuri.
Memorat
Dorin
Client obisnuit
**

Karma: 7
Deconectat Deconectat

Mesaje: 73



Vezi Profilul
« Răspunde #23 : August 08, 2005, 14:45:33 »

e o idee buna dar numerele cum le aleg ?? random sau crescator  ?? Think
ca la suma nu e greu  Very Happy
Memorat

Smile ! Smile ... tomorow will be worse
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
« Răspunde #24 : August 08, 2005, 14:57:34 »

In general eu fac 100 teste random (stiu ca e cam exagerat, dar ... Smile ) Fa-le cat de cat mici sa poti face debug dupa aia
Memorat
Pagini: [1] 2 3 ... 5   În sus
  Imprimă  
 
Schimbă forumul:  

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