ditzone
Vizitator
|
 |
« : Octombrie 23, 2005, 21:48:20 » |
|
Aici puteţi discuta despre problema Calatorie interplanetara.
|
|
|
Memorat
|
|
|
|
•sarabogdan
Strain
Karma: 4
Deconectat
Mesaje: 40
|
 |
« Răspunde #1 : Octombrie 24, 2005, 14:05:25 » |
|
Dati-mi va rog un hint cum se facea dinamica la problema asta ca nu mi-a iesit nici cum.
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
 |
« Răspunde #2 : Octombrie 24, 2005, 14:43:39 » |
|
b[i ][j] = valoarea minima de combustibil consumat in viteza normala pana la planeta i mergand exact j unitati de timp cu superviteza. Solutie = minim ( b[n][j] + j ^ 4 ), j = 1, MAXH
|
|
« Ultima modificare: Aprilie 13, 2006, 17:52:28 de către bogdan2412 »
|
Memorat
|
|
|
|
•dausyana
Strain
Karma: -10
Deconectat
Mesaje: 43
|
 |
« Răspunde #3 : Octombrie 24, 2005, 14:55:42 » |
|
aha!!..deci pana l urma era programare dinamica.....mie dc nu mi-o fi iesit??... 
|
|
|
Memorat
|
does anybody remember laughter?
|
|
|
•Adriana_S
|
 |
« Răspunde #4 : Octombrie 26, 2005, 15:15:23 » |
|
pentru ca nu ti-a venit ideea... 
|
|
|
Memorat
|
|
|
|
•calinux
Strain
Karma: 5
Deconectat
Mesaje: 42
|
 |
« Răspunde #5 : Octombrie 29, 2005, 21:44:06 » |
|
|
|
|
Memorat
|
"And all that is now, And all that is gone, And all that's to come, And everything under the sun is in tune But the sun is eclipsed by the moon" The Dark Side of The Moon - Pink Floyd
|
|
|
•filipb
|
 |
« Răspunde #6 : Octombrie 30, 2005, 18:38:13 » |
|
Eu am avut probleme la afisare  pt k nu puneam punctul la sfarsitul fiecarei linii...  In rest, dinamica e f usor de facut si nu apar cazuri speciale in sursa. Incearca si cu teste mici in care sa iti aleaga de fiecare data viteza normala, sau cu unele in care sa se aleaga mereu numai superviteza. Desi nu ar trebui sa ai probleme  Ce ar mai putea sa apara: consumul minim de combustibil s-ar putea sa nu se incadreze pe 32 de biti... Cam asta ar fi tot!
|
|
|
Memorat
|
|
|
|
•Marius
|
 |
« Răspunde #7 : Ianuarie 18, 2006, 01:00:53 » |
|
Si eu am incercat sa implementez, dar nu am reusit  . Folosesc 64 de biti pentru numere si pun punctul la sfarsitul liniilor...  Ce sa fie ?
|
|
|
Memorat
|
Faceti lucrurile simplu: pe cat de simplu posibil, dar nu mai simplu.
|
|
|
•Adriana_S
|
 |
« Răspunde #8 : Ianuarie 18, 2006, 13:56:47 » |
|
pai daca nu e de la afisare inseamna ca e de la dinamica. Poate ai busit implementarea, sau e chiar de la idee pe care ori ai inteles-o prost din postul lui bogdan ori ai gandit-o prost. E putin cam greu sa-si dea cineva seama ce ai gresit tu numai din ce ai zis....
|
|
|
Memorat
|
|
|
|
•tm_radu
|
 |
« Răspunde #9 : Iunie 11, 2006, 18:38:02 » |
|
Cat va da pe: 1 6 12543 7 2345 2 7347 4 57629 5 100 3
mie imi da 21549. ii bine?
|
|
|
Memorat
|
Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
|
|
|
•wefgef
|
 |
« Răspunde #10 : Iunie 11, 2006, 20:13:25 » |
|
e bine 
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•tm_radu
|
 |
« Răspunde #11 : Iunie 11, 2006, 20:30:18 » |
|
in cazu asta habar n-am ce-am gresit....
|
|
|
Memorat
|
Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
|
|
|
•tm_radu
|
 |
« Răspunde #12 : Iunie 13, 2006, 17:08:35 » |
|
mi-ati putea da macar un test (nu unul din cele oficiale) ca sa vad ce am gresit?
|
|
|
Memorat
|
Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
|
|
|
u-92
Vizitator
|
 |
« Răspunde #13 : Iunie 13, 2006, 20:29:12 » |
|
lasa tu un test (mai maricel) si iti spun rezultatul corect
|
|
|
Memorat
|
|
|
|
•tm_radu
|
 |
« Răspunde #14 : Iulie 06, 2006, 17:03:57 » |
|
Pentru: 3 12 12543 7 2345 2 60 3 3467 5 7347 4 57629 5 100 3 24560 9 3232 6 1231 10 45325 8 4 100 2 101 4 102 6 5 10000 1 10000 2 10001 5 10001 3
va da: Consumul minim = 83446. Consumul minim = 219. Consumul minim = 11297.
? 
|
|
|
Memorat
|
Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
|
|
|
•bogdan2412
|
 |
« Răspunde #15 : Iulie 06, 2006, 17:14:33 » |
|
da... e bine..
|
|
|
Memorat
|
|
|
|
•tm_radu
|
 |
« Răspunde #16 : Iulie 06, 2006, 17:52:21 » |
|
Ce naspa ca nu este decat un singur test  imi da bine pe toate testele facute de mana, dar totusi primesc WA...
|
|
|
Memorat
|
Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
|
|
|
•bogdan2412
|
 |
« Răspunde #17 : Iulie 06, 2006, 17:59:32 » |
|
Vezi daca programul tau nu crapa pentru N <= 1, daca folosesti int64 / long long peste tot pe unde trebuie, daca ai "." la sfarsitul fiecarui rand  sau daca nu pui un enter in plus la sfarsitul fisierului...
|
|
« Ultima modificare: Iulie 06, 2006, 18:15:03 de către bogdan2412 »
|
Memorat
|
|
|
|
•tm_radu
|
 |
« Răspunde #18 : Iulie 06, 2006, 18:12:02 » |
|
Pentru n = 1, trebuie afisat 0, nu?
|
|
|
Memorat
|
Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
|
|
|
•filipb
|
 |
« Răspunde #19 : Iulie 06, 2006, 21:00:58 » |
|
DA
|
|
|
Memorat
|
|
|
|
•Coty
|
 |
« Răspunde #20 : Iulie 09, 2006, 15:45:05 » |
|
scanf("%ld", &T); while ( T-- ) { // ................ printf("Consumul minim = %lld.", solve()); if ( T ) printf("\n"); }
e cu punct la sfarsit, e long long, nu are un enter in plus... si imi dau toate destele facute de mana... ce are?  [Later edit] nu am zis, dar am facut cum a zis Bogdan, cu o matrice in care A[ i ][ j ] inseamna cat a mers cu viteza normala pana in bucata de drum i ( inclusiv ) atata timp cat a consumat j unitati de superviteza... si matricea e de 600 x 600 ... long long in matrice, long long rezultatul... cand fac minimul verifica pana la j 10 (care la a patra intra in long): long long rez=MARE; for (j=0; j<10; ++j) if ( rez>(long long)(A[N][j]+j*j*j*j) ) rez=(long long)(A[N][j]+j*j*j*j); return rez;
sau daca nu pui un enter in plus la sfarsitul fisierului...
fisierul trebuie sa aiba un enter dupa ultimul punct? sau nu? adica te referi la < punct enter enter > sau la < punct enter > 
|
|
« Ultima modificare: Iulie 12, 2006, 16:02:26 de către Coty »
|
Memorat
|
|
|
|
•tm_radu
|
 |
« Răspunde #21 : Iulie 19, 2006, 17:16:18 » |
|
Probabil nu e de la afisare...verifica daca MARE este o constanta destul de mare, si daca initializezi cum trebuie matricea dupa fiecare test din fisierul de intrare. inca ceva....declara o constanta long long int sau chiar double in care tii rezultatul lui j^4...pentur ca s-ar putea sa devina destul de amre la un moment dat
|
|
|
Memorat
|
Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
|
|
|
•svalentin
|
 |
« Răspunde #22 : Iulie 19, 2006, 22:30:26 » |
|
..declara o constanta long long int sau chiar double in care tii rezultatul lui j^4...pentur ca s-ar putea sa devina destul de amre la un moment dat
(long long)(A[N][j]+j*j*j*j) ... cred ca face deja calculele in long long
|
|
|
Memorat
|
|
|
|
•Coty
|
 |
« Răspunde #23 : Iulie 20, 2006, 07:24:22 » |
|
Probabil nu e de la afisare...verifica daca MARE este o constanta destul de mare, si daca initializezi cum trebuie matricea dupa fiecare test din fisierul de intrare. inca ceva....declara o constanta long long int sau chiar double in care tii rezultatul lui j^4...pentur ca s-ar putea sa devina destul de amre la un moment dat
mi se pare ca ala e 2^20, oricum, daca e mai mare parca face urat... da, calculez matricea A si rezultatul in long long. acum am modificat sursa un pic si functia solve() nu returneaza decat pozitia, valoarea o calculez inainte de afisare... nu ca ar fi o mare imbunatatire,,, intrebarea mare ar fi: evaluatorul tine cont de cate enteruri sunt la sfarsitul fisierului de iesire? ca daca nu, e de la valorile gresite pe care le returneaza programul... si inca ceva: vi s-a intamplat sa rulati executabilul dupa compilare, sa primiti un raspuns aproximativ gresit ( pt 1 test nu era corect ) si sa dati run din rhide pe urma si sa va dea corect? si eventual stiti de la ce ar putea fi 
|
|
|
Memorat
|
|
|
|
•svalentin
|
 |
« Răspunde #24 : Iulie 20, 2006, 09:13:09 » |
|
ar putea fi de la faptul ca iti iese din memori pe undeva; cand rulezi din Rhide, Rhide mai tine niste chestii in memorie si tu cand iesi, poti sa iesi peste memoria lui Rhide; pe cand daca rulezi direct .exe, cand iesi din memorie poti intri peste altceva... ruleza-l si in Linux sa vezi daca ai probleme.. si de ce ai long long rez daca il initializezi cu MARE care e doar 2^20? rez poate sa fie in cazul asta int.. sau fa MARE mai mare  (ex 2^60).. ex #define MARE 1e18 (asta e 10^18.. se aproprie de maximul long long..); dar vezi ca e double, insa il transforma bine in long long
|
|
« Ultima modificare: Iulie 20, 2006, 09:39:16 de către svalentin »
|
Memorat
|
|
|
|
|