Afişează mesaje
|
|
Pagini: [1]
|
|
1
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Cost Uniform
|
: Noiembrie 05, 2009, 19:59:14
|
#include <iostream> #include <conio.h> using namespace std;
void main (void) { int a[20][20],trecut[20],Cost[20][20],n,i,j,u,pc,y, m,e1,e2,x,sol[20]; cout<<"numarul de noduri: "; cin>>n; cout<<"numarul de muchii: "; cin>>m; for (i=1;i<=n;i++) for (j=1;j<=n;j++) a[i][j]=0; for (i=1;i<=m;i++) { cout<<"Muchia "<<i<<":\n"; cout<<"e1="; cin>>e1; cout<<"e2="; cin>>e2; a[e1][e2]=a[e2][e1]=1; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) { cout<<"Cost["<<i<<"]["<<j<<"]="; cin>>Cost[i][j];}
for (i=1;i<=n;i++) trecut[i]=0; cout<<"Nodul initial: "; cin>>x; cout<<"Nodul cautat: "; cin>>y; pc=1; u=1; sol[1]=x; trecut[x]=1;
while (u < n && !trecut[y]) { for (i=1;i<=n;i++) if (a[sol[pc]][i] && !trecut[i]) { u++; sol[u]=i; trecut[i]=1; } pc++; } cout<<"Parcurgerea BFS:"; for (i=1;i<=n;i++) cout<<sol[i]<<','; cout<<'\b'; getche(); } [code/] Am nevoie sa modific algoritmul de mai sus(care reprezinta parcurgerea in latime) astfel incat sa calculez drumul de cost uniform de la un nod initial la un nod cautat. Deci eu introduc de la tastatura nodul de plecare si nodul la care trebuie sa ajung(ceea ce am realizat deja) si mai am nevoie de o matrice a costurilor care contine costul drumurilor (costul fiecarei muchii de la un nod la altul) (cred ca si asta am realizat corect) Am nevoie de o continuare..astfel incat sa imi afiseze drumul parcurs si costul acestuia! Help!
|
|
|
|
|
2
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Problema Drumuri C++
|
: Octombrie 21, 2009, 18:32:11
|
Adauga la conditia Cat timp u < n si nu am trecut de y atunci continua  si cum introduc nodul cautat....? Trebuie sa introduc si nodul de plecare si nodul la care trebuie sa ajung(nodul cautat)...iar atunci cand am ajuns la nodul cautat trebuie sa afisez prin ce noduri am trecut pana atunci dupa cout<<"nodul initial: "; cin>>x; scriu cout<<"nodul cautat: " cin>>y; Deci conditia de oprire este ajungerea la nodul cautat...si afisarea celorlalte noduri prin care am trecut! si atat
|
|
|
|
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Problema Drumuri C++
|
: Octombrie 21, 2009, 18:01:11
|
Am nevoie sa modific urmatorul cod (care reprezinta parcurgerea in latime a unui graf) astfel incat inainte sa imi afizeze drumul (adica parcurgerea propriu-zisa) sa pot introduce in afara de nodul de pornire si un nod cautat! Deci eu trebuie sa plec de la nodul X si sa ajung la Y...iar cand ajung la Y...sa ma opresc si sa afisez drumul parcurs! #include <iostream.h> #include <conio.h> void main (void) { int a[20][20],trecut[20],n,i,j,u,pc, m,e1,e2,x,sol[20]; cout<<"numarul de noduri: "; cin>>n; cout<<"numarul de muchii: "; cin>>m; for (i=1;i<=n;i++) for (j=1;j<=n;j++) a[i][j]=0; for (i=1;i<=m;i++) { cout<<"Muchia "<<i<<":\n"; cout<<"e1="; cin>>e1; cout<<"e2="; cin>>e2; a[e1][e2]=a[e2][e1]=1; } for (i=1;i<=n;i++) trecut[i]=0; cout<<"Nodul initial: "; cin>>x; pc=1; u=1; sol[1]=x; trecut[x]=1; while (u<n) { for (i=1;i<=n;i++) if (a[sol[pc]][i] && !trecut[i]) { u++; sol[u]=i; trecut[i]=1; } pc++; } cout<<"Parcurgerea BFS:"; for (i=1;i<=n;i++) cout<<sol[i]<<','; cout<<'\b'; getche(); } Variabilele utilizate Ä«n programul C++ a - matricea de adiacenţă asociată grafului; trecut -vector Ä«n care se trec Ä«n ordine nodurileâ€parcurseâ€; n - numărul de noduri din graf; m - numărul de muchii din graf; e1,e2 - extremităţile muchiilor; i,j - contori; x – nodul din care se „pleacăâ€; u - variabilă (contor) ce Å£ine evidenÅ£a numărului de noduri vizitate; pc - nodul ai cărui vecini Ä«i căutăm; sol - vectorul rezultat Ä«n urma parcurgerii (conÅ£ine nodurile Ä«n ordinea vizitării lor).
|
|
|
|
|
4
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Suma a 2 grafuri
|
: Mai 21, 2009, 21:21:29
|
am vrea sa stiu si eu cum continui urmatorul algoritm ca sa pot face suma a doua grafuri //Suma a 2 grafuri #include<iostream.h> #include<stdio.h> #include<stdlib.h> int g1[20][20],g2[20],sumagraf[20],n,m,i,j,; int citire1() { int i,j; cout<<"Numarul de noduri ale grafului neorientat G1 este: "; cin>>n; cout<<"Matricea de adiacenta este:"<<endl; for(i=1;i<=n;i++) for(j=1;j<=n;j++) cin>>g1[i][j]; return 0; } int citire2() { int i,j; cout<<"Numarul de noduri ale grafului neorientat G2 este: "; cin>>m; cout<<"Matricea de adiacenta este:"<<endl; for(i=1;i<=m;i++) for(j=1;j<=m;j++) cin>>g2[i][j]; return 0; }
Editat de admin: Foloseste tagul "code" cand postezi surse
|
|
|
|
|
5
|
infoarena - concursuri, probleme, evaluator, articole / Teme / Liber de Patrate!
|
: Ianuarie 19, 2009, 21:18:37
|
|
Fie n un numar liber de patrate(n<>0,n=p1p2...pk). Pentru n>=2, multimea divizorilor sai notata cu B, este latice boole unde: d1^d1=(d1,d2), di V d2=[d1,d2] si d=n/n, oricare ar fi d,d1,d2 din B. Sa se afiseze multimea B, sa se scrie complementii elementelor multimii B in vectorul C si pentru fiecare pereche de elemente din B, sa se scrie in matricele B, respectiv M, infimum si supremum corespunzator!
As avea nevoie de un algoritm in C++ ....multumesc anticipat!
|
|
|
|
|
8
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Enunt greu
|
: Ianuarie 06, 2009, 22:53:31
|
|
Sa se scrie o fuctie care sa calculeze suma ponderata a n numere reale x(cu sageata in cap)=f1x1+...+fnxn
f1 sunt factori de pondere 0 <=f1<1 si f1+f2+f3+……+fn=1 Prototipul functiei va fi media (x,f,n) unde n este dimensiunea vectorilor x si f. Functia se va scrie utilizand instructiunea while.
f(x)=radical din |x-1||x+1|³ pe intervalul [-4,5] cu pasul 0,45
Dak se poate as dori niste indicatii deoarece nu am idee cum sa fac aceasta problema.Multumesc!
|
|
|
|
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Teme / Răspuns: Răspuns: Probleme Grele
|
: Decembrie 16, 2008, 23:26:59
|
Nu posta in mai multe locuri! Daca vrea lumea sa te ajute, o va face aici.
Problemele cu care ai de a face se rezolva cu principiul includerii si excluderii.
1. Numarul de numere <= N, divizibile cu x, este N/x. Tu vrei sa afli reuniunea a trei astfel de multimi si, aplicand principiul includerii si al excluderii, obtii raspunsul: N/a + N/b + N/c - N/(a*b) - N/(a*c) - N/(b*c) + N/(a*b*c).
2. Despre a doua problema as zice ca nu e completa. Pentru a defini infimum si supremum, trebuie sa ai, mai intai, o relatie de ordine. Incearca sa te gandesti singur la problema asta, eu sunt sigur ca are de a face ca idee cu problema precedenta.
mersi pt ajutor. Problema 2 asa a fost enuntata....nu mai am nicio indicatie 
|
|
|
|
|
10
|
infoarena - concursuri, probleme, evaluator, articole / Teme / Răspuns: Probleme Grele
|
: Decembrie 16, 2008, 22:14:30
|
la prima problema... se da n un numar natural nenul sau un sir de n numere naturale nenule? la a doua problema nu am inteles mai deloc... prea multe prescurtari pentru mine  , daca ai putea da un edit si sa scrii complet si corect problema?... gata..  am corectat Pentru n numere naturale,,,,deci mai multe numere ,nu unul singur
|
|
|
|
|
11
|
infoarena - concursuri, probleme, evaluator, articole / Teme / Probleme Grele
|
: Decembrie 16, 2008, 00:45:24
|
2. Fie n un numar liber de patrate(n<>0,n=p1p2...pk). Pentru n>=2, multimea divizorilor sai notata cu B, este latice boole unde: d1^d1=(d1,d2), di V d2=[d1,d2] si d=n/n, oricare ar fi d,d1,d2 din B.  As avea nevoie sa stiu si eu rezolvarea deoarce nu o sa intru la examen daca nu prezint problemela asta. Sunt in mare dilema deoarece problema este foarte grea. Va rog sa ma ajutati si pe mine.Multumesc anticipat!
|
|
|
|
|