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

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« : Iunie 25, 2007, 16:19:34 »

Aici puteţi discuta despre problema Sate.
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #1 : Iunie 26, 2007, 10:54:54 »

Am vazut prin alte topicuri ca un BF iese din timp... daca e facut cu o coada alocata de la bun inceput nu sunt prob, fara parsare Wink ... eu cel putin nu la asta am probleme...

Ci primesc cate un WA la un singur test din grupuri... nu-mi prea dau seama ce cazuri de exceptie exista ... Huh
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #2 : Iunie 26, 2007, 11:04:50 »

Incearca pe teste de genul:

Cod:
1000 4 5 10 
1 3 10
3 5 10
10 20 70
1 20 100

Raspunsul trebuie sa fie 10.
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #3 : Iunie 26, 2007, 11:47:39 »

Multumesc frumos, acu da Smile ... adica na, ca de obicei vechea greseala... citeste relatiile pana la n nu pana la m ...  Fool
Memorat
bogdanhm999
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #4 : Februarie 08, 2008, 12:26:58 »

mie imi pica un test cu TLE si am implementat un O (N+M). voi ce tip de liste folositi, k eu am lucrat cu "vector <long>" din STL  Think
Memorat
Dastas
Vorbaret
****

Karma: 11
Deconectat Deconectat

Mesaje: 170



Vezi Profilul
« Răspunde #5 : Februarie 08, 2008, 16:18:54 »

Ai grija sa opresti cautarea (break, return) cand ai ajuns la solutie.
Memorat
bogdanhm999
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #6 : Februarie 08, 2008, 16:34:35 »

nop...nu de aici e problema...am conditiile bine puse..cred k e de la timpu de acces la lista
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #7 : Februarie 08, 2008, 18:57:26 »

La problema asta nu e indicat sa folosesti STL. Merge mai greu decat alte modalitati de retinere a grafului. Incearca implementarea lui Radu Berinde cu vectori alocati dinamic: http://infoarena.ro/multe-smenuri-de-programare-in-cc-si-nu-numai
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #8 : Februarie 08, 2008, 21:58:45 »

Mie mi'a intrat frumos cu liste. http://infoarena.ro/job_detail/133446
Acelasi algoritm, folosind STL iesea din timp pe un test.
Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #9 : Noiembrie 12, 2009, 21:28:03 »

Nu inteleg, eu reprezint problema cu un graf neorientat si retin si costurile de la nodul i la j, si mie imi da si pe foaie ca de la 1 la 11 , costul este 44. Unde gresesc?
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #10 : Noiembrie 13, 2009, 09:17:57 »

Citat
Satele sunt asezate in ordine, de la stanga la dreapta, conform numerelor care le identifica.
Inseamna ca daca ai un drum de la x la y de costul c, cand parcurgi x -> y, trebuie sa aduni costul, iar cand parcurgi y -> x il scazi.
1->7   : +10
7->5   :  -4
5->8   :  +8
8->6   :  -5
6->4   :  -4
4->11 : +13
           ----
           +18
Memorat
dushmi
Nu mai tace
*****

Karma: 130
Deconectat Deconectat

Mesaje: 472



Vezi Profilul
« Răspunde #11 : Martie 31, 2010, 12:12:21 »

cred ca puteti sa folositi STL ptr ca merge foarte bine... http://infoarena.ro/job_detail/430808

Am folosit si queue( BFS) si vector( liste)
Memorat
Bit_Master
Vorbaret
****

Karma: -49
Deconectat Deconectat

Mesaje: 159



Vezi Profilul
« Răspunde #12 : Martie 04, 2011, 17:46:09 »

"trebuie determinata distanta intre satele X si Y, daca acest lucru este posibil."
"Intotdeauna va putea fi determinata distanta dintre X si Y pe baza informatiilor primite"

?
« Ultima modificare: Martie 16, 2011, 16:53:19 de către Alexandru-Iancu Caragicu » Memorat
tinky
Strain


Karma: 1
Deconectat Deconectat

Mesaje: 7



Vezi Profilul
« Răspunde #13 : Martie 17, 2011, 01:06:28 »

prin STL cred ca depinde de implementare si de mici optimizari.. de exemplu stiu ca cineva a luat 100 dupa ce a micsorat dimensiunea vectorilor cu 1 sau 2

btw.. eu inca sunt uimit ca functioneaza: job #482680 si are si un timp foarte bun. pe testul pe care luam TLE fac acum 52 ms (sursa mea: job #557996 )
Memorat
scipianus
Nu mai tace
*****

Karma: 129
Deconectat Deconectat

Mesaje: 345



Vezi Profilul
« Răspunde #14 : Iunie 11, 2011, 17:38:51 »

Poate sa-mi explice si mie cineva care e problema cu testul 13 de iau TLE pe o implementare O(n+m) cu BFS,graf memorat prin liste de adiacenta alocate dinamic(nu cu STL),citire cu cstdio si conditie de oprire din BFS cand a gasit solutia?  Huh

LE : Gata,am parsat citirea si am luat 100pct  peacefingers Mersi eudanip  Smile
« Ultima modificare: Iunie 12, 2011, 13:01:39 de către Olariu Ciprian » Memorat
eudanip
Echipa infoarena
Nu mai tace
*****

Karma: 307
Deconectat Deconectat

Mesaje: 703



Vezi Profilul
« Răspunde #15 : Iunie 11, 2011, 21:41:28 »

Parseaza citirea.
Memorat
StarGold2
Strain
*

Karma: 11
Deconectat Deconectat

Mesaje: 46



Vezi Profilul
« Răspunde #16 : Decembrie 30, 2014, 19:23:05 »

Ce poate avea solutia mea? Iau TLE pe un test. Oare din cauza ca nu parsez citirea?

Cod:

#include <fstream>
#include <vector>
#define Max 100100
using namespace std;

FILE *fin = fopen("sate.in", "r");
FILE *fout = fopen("sate.out", "w");

int n, m, i, j, k, ok, minim, maxim,z;
vector < int > v[Max];
int vizit[Max], dist[Max], p, u, x, y;

void bfs(int val){
    vizit[val] = 1;
    for(int i = 0; i < v[val].size(); i += 2){
        if(vizit[v[val]] == 0){
            dist[v[val]] = dist[val] + v[val][i + 1];
            bfs(v[val]);
        }
    }
    return;
}

void read(){
    fscanf(fin, "%d%d%d%d", &n, &m, &p, &u);
    for(i = 1; i <= m; i ++){
        fscanf(fin, "%d%d%d", &x, &y, &z);
        v
  • .push_back(y);
        v
  • .push_back(z);
        v[y].push_back(x);
        v[y].push_back(-z);
    }
    return;
}

int main(){
    read(); bfs(p);
    fprintf(fout, "%d", dist);
    return 0;
}
Memorat
oldatlantian
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #17 : Iunie 25, 2016, 00:03:23 »

Ar trebui sa se garanteze ca X < Y sau sa se schimbe testele. Cu prima mea sursa daca X > Y, distanta afisata imi iesea negativa (am luat 100p). In plus, merge si cu DFS (sugerez un tag in plus).
Memorat
Pera
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #18 : Noiembrie 26, 2018, 09:59:28 »

DA Very Happy Very Happy Very Happy
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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