•hitmann
Strain
Karma: 2
Deconectat
Mesaje: 14
|
|
« Răspunde #25 : Februarie 28, 2007, 16:17:05 » |
|
incerc sa fac problema cu Dijkstra cu heapuri dar doar primul test e corect, la restul iau raspuns incorect, mi-am facut mai multe exemple si imi da bine, nu imi dau seama unde gresesc, la operatiile cu heap-ul sau unde... ca sa pot efectua Descreste_cheie(poz, val),cand relaxez, pastrez un vector id, id[i ]=pozitia in heap a nod-ului i, . Ar putea cineva sa-mi dea un test si raspunsul (cu care cat de cat se poate face debug)? ... i just don't get it...(stiu ca este si solutie O(V+E) dar e important si acest algoritm) Anyone ?
|
|
« Ultima modificare: Martie 07, 2007, 16:01:01 de către Ciocas Radu »
|
Memorat
|
|
|
|
•nimenia
Strain
Karma: 0
Deconectat
Mesaje: 1
|
|
« Răspunde #26 : Aprilie 15, 2008, 13:08:21 » |
|
grafu e neorientat:)) eu am ncerkt sa o fac cu grafu orientat si...ghici ce! nu mi a mers. vz sa nu faci la fel:PP
|
|
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #27 : Aprilie 18, 2008, 08:09:49 » |
|
Am si eu o intrebare... am incercat sa fac Dijkstra si dupa aceea sa verific daca da acelasi rezultat...si bineinteles ca iau TLE pe 9 teste ... Am incercat sa verific doar conditiile, dar iau WA atunci... probabil nu verific corect... imi poate da cineva un indiciu despre cum ar trebui? In ce moment trebuie sa verific aceste conditii??? Ms!
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
|
« Răspunde #28 : Aprilie 18, 2008, 09:14:33 » |
|
ai citit articolul cu solutii? eu am luat 100 folosind Bellman Ford cu coada.
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
|
•avram_florin
Strain
Karma: -1
Deconectat
Mesaje: 10
|
|
« Răspunde #30 : Martie 02, 2011, 16:37:48 » |
|
Poate cineva sa imi explice ce e gresit in rationamentul meu pentru ca iau doar 40 de puncte.Eu iau fiecare muchie din fisier si incerc sa vad daca pot obtine un drum mai scurt,adica x,y sunt capetele muchie,iar c costul si verific daca d - +c<d[y]||d[y]+c<d
- ,iar daca e asa inseamna ca Bronzarel nu a calculat bine distanta minima.E ceva gresit in asta?
|
|
|
Memorat
|
|
|
|
|
•klamathix
|
|
« Răspunde #32 : Septembrie 12, 2012, 20:36:24 » |
|
Pai din cauza sursei aleia si altora in genul ei am schimbat limita. Sursa aia face dijkstra. Probabil era intr-adevar prea stransa, am mai pus 0.02 . Daca tot nu merge, nu mai folosi STL, si nu fa operatii inutile. N-ai nevoie sa construiesti graful deloc aici. Ai nevoie doar sa parcurgi muchiile o data.
|
|
|
Memorat
|
|
|
|
•liana
Strain
Karma: 1
Deconectat
Mesaje: 3
|
|
« Răspunde #33 : Noiembrie 22, 2012, 19:00:09 » |
|
Cred ca limita de timp e prea mica. Iau 60 de puncte(cu tle pe testul 7) si nu stiu cum as mai putea optimiza. Am O(t*(n+m)).
|
|
|
Memorat
|
|
|
|
•vendetta
|
|
« Răspunde #34 : Noiembrie 22, 2012, 19:53:52 » |
|
Incearca sa parsezi citirea. S-a luat 100 de puncte chiar azi.
|
|
|
Memorat
|
|
|
|
•PetcuIoan
Strain
Karma: 72
Deconectat
Mesaje: 49
|
|
« Răspunde #35 : Februarie 18, 2013, 18:01:51 » |
|
Faptul ca c poate fi si 0 nu se prea vede in teste...
Edit: Nu m-am exprimat destul de clar, pe testul 4 3 1 0 1 2 1 1 3 2 1 2 7 2 4 0
una din solutiile oficiale ar raspunde DA, iar raspunsul este NU
|
|
« Ultima modificare: Februarie 18, 2013, 18:19:22 de către Petcu Ioan Vlad »
|
Memorat
|
|
|
|
•Eby7
Strain
Karma: 0
Deconectat
Mesaje: 6
|
|
« Răspunde #36 : Mai 07, 2013, 08:50:26 » |
|
Va rog frumos daca puteti sa ma ajutati putin. Am trimis o sursa care da 0 puncte. Treaba este ca, la primul test totul da bine si de la urmatoarele nu mai da corect. Cred ca are legatura cu folosirea succesiva a unor vectori. Oricum, daca imi puteti spune opinia voastra... Asta e sursa #include<fstream> #define inf 10001 using namespace std; ifstream f("distante.in"); ofstream g("distante.out"); struct muchie { long x,y,c; }q[100001]; long t; long n,m,s,gasit; long d[50001]; long v[50001]; int main() { long x,y,c; long ok; f>>t; for(long k=1;k<=t;k++) { gasit=0; f>>n>>m>>s; for(long j=1;j<=n;j++) f>>v[j]; for(long j=1;j<=m;j++) { f>>x>>y>>c; q[j].x=x; q[j].y=y; q[j].c=c; if(x==s) d[y]=c; if(y==s) d[x]=c; } for(long i=1;i<=n;i++) if(d[i]==0&&i!=s) d[i]=inf; do { ok=1; for(long i=1;i<=m;i++) if(d[q[i].y]>d[q[i].x]+q[i].c) { d[q[i].y]=d[q[i].x]+q[i].c; ok=0; } }while(!ok); /*for(long i=1;i<=n;i++) g<<d[i]<<" "; g<<"\n";*/ for(long i=1;i<=n;i++) if(d[i]!=v[i]) gasit=1; if(!gasit) g<<"DA"<<"\n"; else g<<"NU"<<"\n"; } return 0; }
Foloseste tag-ul [ code ] [/ code ] cand postezi cod.
|
|
« Ultima modificare: Mai 07, 2013, 12:23:13 de către Paul-Dan Baltescu »
|
Memorat
|
|
|
|
•vladm97
Strain
Karma: 0
Deconectat
Mesaje: 4
|
|
« Răspunde #37 : Mai 18, 2013, 14:26:35 » |
|
Vezi ca tu nu ai eliminat muchiile din graf. Fiecare nou graf va mosteni muchiile predecesorului sau. Am patit si eu aceeasi chestie.
|
|
|
Memorat
|
|
|
|
•SwissRhino
Strain
Karma: 0
Deconectat
Mesaje: 1
|
|
« Răspunde #38 : Iulie 22, 2013, 22:18:29 » |
|
Testele la problema aceasta sunt foarte proaste. O solutie care verifica doar daca nu se pot face imbunatatiri ia 100 de puncte. if (best[a] + c < best[b] || best[b] + c < best[a]) ok = false Asa ca va rog sa inlocuiti un test cu acest test PS: cred ca 5 din ultimele 6 surse de 100 sunt gresite.
|
|
|
Memorat
|
|
|
|
•theprdv
Strain
Karma: -1
Deconectat
Mesaje: 11
|
|
« Răspunde #39 : Martie 31, 2015, 04:38:01 » |
|
Testele la problema aceasta sunt foarte proaste. O solutie care verifica doar daca nu se pot face imbunatatiri ia 100 de puncte. if (best[a] + c < best[b] || best[b] + c < best[a]) ok = false Asa ca va rog sa inlocuiti un test cu acest test asa e... nu sunt bune testele pentru ca nu e nici un test in care se verifica daca o distanta calculata de Bronzarica ala e mai mica decat cea corecta.. (adica verificam pentru toate nodurile daca se gaseste distanta calculata de Br.) PS: cred ca 5 din ultimele 6 surse de 100 sunt gresite.
|
|
|
Memorat
|
|
|
|
|