Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 552 Dcmcp  (Citit de 1905 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« : Octombrie 10, 2007, 00:35:05 »

Aici puteţi discuta despre problema Dcmcp.
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #1 : Octombrie 11, 2007, 19:40:21 »

Cum poti sa folosesti de mai multe ori un vector, adica dupa fiecare citire sa ai size actuale, totul sa fie ok. Eu am incercat ceva de genul(vezi mai jos), dar iau Killed by Signal 11.

Citat
vector< vector<int> > L, Cost, Flow;

for ( int k = 1; k <= T; k++ )
    {
        scanf("%d%d%d", &N, &M, &W);
       
        L.resize(N+1); Cost.resize(N+1); Flow.resize(N+1);
       
        for ( int i = 1; i <= M; i++ )
        {
            scanf("%d%d", &x, &y );
            scanf("%d", &c);
            scanf("%d", &t);       
           
            if ( x > N || y > N ) continue;
                 
            L[ x ].push_back(y); L[y].push_back(x);
            Cost[ x ].push_back(t); Cost[y].push_back(t);
            Flow[ x ].push_back(c); Flow[y].push_back(c);
            F[ i ] = c;
        }
        //...//
       
        for ( int i = 0; i < L.size(); i++ )
            L[ i ].clear(), Cost[ i ].clear(), Flow[ i ].clear();
       
        L.clear(), Cost.clear(), Flow.clear();
    }
Memorat

vid...
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #2 : Octombrie 11, 2007, 20:46:44 »

Cod:
vector <int> a;
vector <int> ().swap(a);



Memorat

Am zis Mr. Green
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #3 : Octombrie 11, 2007, 20:57:37 »

Merci, ii interesant cu swap  Smile .

Dar se pare ca eu greseam altceva, o dimensiune la un sir. Cel putin acum iau wa.

LE : Tot timpul va exista solutie ?
« Ultima modificare: Octombrie 11, 2007, 21:06:17 de către Bondane Cosmin » Memorat

vid...
blasterz
Nu mai tace
*****

Karma: 92
Deconectat Deconectat

Mesaje: 255



Vezi Profilul
« Răspunde #4 : Octombrie 11, 2007, 21:47:06 »

interesant...

cu bellman-ford cu coada scot 1128 ms
iar cu dijkstra cu heapuri  1040 ms Confused
sunt testele slabe?
sau bellman-ford-ul cu coada
se comporta chiar bine?
Memorat
mugurelionut
De-al casei
***

Karma: 209
Deconectat Deconectat

Mesaje: 136



Vezi Profilul
« Răspunde #5 : Octombrie 11, 2007, 21:55:38 »

in general, bellman-ford cu coada se comporta foarte bine. sunt putine probleme unde poti sa busesti acest tip de solutie (una din ele e problema "The Queen", de pe SGU : http://acm.sgu.ru/problem.php?contest=0&problem=235 ; dar si acolo, daca optimizezi mai multe chestii, toti poti sa iei AC). eu nu cred ca sunt testele slabe, dar, totusi, as fi curios daca reuseste cineva sa gaseasca vreun test la aceasta problema pe care bellman-ford cu coada sa mearga prost (si daca gasiti un astfel de test, va rog sa-mi spuneti si mie, ca sa imbunatatesc testele problemei Very Happy ).
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #6 : Noiembrie 27, 2007, 20:52:18 »

Daca are cineva chef sa se uite peste sursele astea 2 si sa-mi explice de ce una ia 100 si cealalta 0, i-as fi super recunoscator...

http://infoarena.ro/job_detail/110845
http://infoarena.ro/job_detail/110843

Singura diferenta este comentariul de pe linia 53.

Practic, cu comentariu iau sigsegv, fara iau 100. Acel vector nu e folosit niciunde in program, si nu-mi dau seama cum ar putea influenta ceva lipsa lui...
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #7 : Noiembrie 27, 2007, 21:54:04 »

Ia sursa de 100, decomenteaza linia 53, si vei lua 100.

Nu exista o singura diferenta.

Liniile 228 si 230, ai schimbat din long long in int. Apelezi functia dmin2, care are ca parametru o variabila de tip int, iar tu ii transmiti un long long. Din aceasta cauza programul tau merge aiurea. Castul din long long in int nu se face prea bine se pare.
« Ultima modificare: Noiembrie 27, 2007, 21:56:32 de către Andrei Grigorean » Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #8 : Noiembrie 27, 2007, 22:01:12 »

Da, asa e. M-am grabit. Tot am comentat si decomentat portiuni si schimbat tipuri de date si nu mai stiam de ce ba iau 100 ba 0...

Mersi Smile.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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