Posted on 22:18 by laviniutorcea

/*Sa se afiseze multimea W minus pt un varf k citit de la tastatura,
pt un graf orientat cu n varfuri.*/
#include
#include
#include
int main()
int i,j,k,n,m,a[20][20];
ifstream f("graf.in")
y>>n;y>>m;
for(i=1;i<=m;i++)
    y>>x;
    y>>z;
    a[x][z]=1;
cin>>k;
cout<<"{";
for(i=1;i<=n;i++)
    if(a[i][k]==1)
        cout<<"("<<<","<<<")";
        cout<<"}";
}
for(i=1;i<=n;i++)
{
    for(j=1;j<=n;j++)
        cout<<<" ";
        cout<
}
f.close();
return 0;

Posted on 22:17 by laviniutorcea

/*Determinati varful cu cel mai mare grad intern si pt acel varf sa se
afiseze multimea gama minus.*/
#include
#include
#include
{
int main()
int i,j,k,n,m,a[20][20];
ifstream f("graf.in")
y>>n;y>>m;
for(i=1;i<=m;i++)
    y>>x;
    y>>z;
    a[x][z]=1;
cin>>k;
cout<<"{";
for(i=1;i<=n;i++)
    if(a[i][k]==1)
        cout<<"("<<<","<<<")";
        cout<<"}";
}
for(i=1;i<=n;i++)
{
    for(j=1;j<=n;j++)
        cout<<<" ";
        cout<

cout<<"{";
for(i=1;i<=n;i++)
    if(a[k][j]==1)
        cout<<"("<<<","<<<",";
        cout<<"}";
f.close();
return 0;

Posted on 22:17 by laviniutorcea

/*Din fisierul graf.txt se citesce matricea varfuri-arce.Sa se afiseze
pe ecran matricea de adiacenta.*/ 
#include
#include
#include
int main()
ifsteam f("graf.txt")
{
int i,b[20][20],j,n,m,b1[20][20];
f>>n;f>>m;
for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
        {if(b[i][j]==-1)
    ef=i;
        if(b[i][j]==1)
    ei=i;
  a[ei][ef]==1;
}
int x,y;
for(i=1;i<=n;i++)
    k=0;
    for(j=1;j<=m;j++)
    {
        cin>>x;
        cin>>y;
        if(b1[i][j]==1 && k==0;)
        {x=i;
        k=1;}
        else
            if(b1[i][j]==-1 && k==1)
                y=i;
            b[x][y]==b[y][x]=1;
    }
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
    cout<<<" ";
    cout<
}   
f.close();
return 0;}

Posted on 22:15 by laviniutorcea

/*Mat de adiacenta in mat drum*/
#include
#include
#include
int main()
ifstream f("graf.in")
{
int i,j,n,m,k,a[20][20],md[20][20];
f>>n;f>>m;
{int x,y;
cin>>x;
cin>>y;
a[x][y]=a[y][x]=1;
for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
        md[i][j]=a[i][j];
    for(k=1;k<=n;k++)
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                if(md[i][j]==0 && i!=k && j!=k)
                md[i][j]=md[i][k]*md[k][j];
f.close();
getch();
return 0;}}

Posted on 22:14 by laviniutorcea

#include
#include
#include
int main()
ifstream f("graf.in")
int viz[20],a[20][20],i,j,n,m,p,u,c[20];
cout<<"n=";cin>>n;
cout<<"m=";cin>>m;
int x,y;
for(i=1;i<=n;i++)
{cin>>x;
 cin>>y;
 a[x][y]=1;
 a[y][x]=1;
}
p=u=1;
for(i=1;i<=n;i++)
    viz[i]=0;
c[p]=1; viz[1]=1;
while(p<=u)
{x=c[p];p++;

for(y=1;y<=n;y++)
    if(a[x][y]==1 && viz[y]=0)
    {u++;
    c[u]=y;
    viz[y]=1;
    }
}
{
for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
        cout<<<" ";
    cout<
}
f.close();
getch();
return 0;

Posted on 23:12 by laviniutorcea

/*Se citeste din fisierul graf.in de pe prima linie nr de varfuri si nr de muchii(n,m),iar de pe
urmatoarele m randuri perechi de varfuri reprezentand muchiile grafului.Se cere:
a)Sa se construiasca matricea de adiacenta si sa se scrie aceasta in fisierul mat.out.
b)Calculati gradul fiecarui nod si pastrati aceste gade intr-un vector.
c)Verificati daca graful are varfuri izolate.*/
#include
#include
#include
int main()
ifstream f("graf.in")
ofstream g("mat.out")
int d=0,n,m,a[20][20],i,j,k;
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{f>>a[i][j];

for(i=1;i<=m;i++)
{f>>x>>y;
a[x][y]=1;
a[y][x]=1;}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i if(a[i][j]==1) cout<<"("<cout< for (i=1;i<=n;i=i+2)
{k=0;
for(j=1;j<=n;j++)
k++;
cout<<"pentru nodul "< cout< for (i=1;i<=n;i=i+2)
{k=0;
for(j=1;j<=n;j++)
k++;
if (k==0) cout<<"nodul "< d++;
}
if (d==0) cout<<"nu exista";
getch();
f.close();
g.close();
return 0;
}

Posted on 23:12 by laviniutorcea

1.23022010
#include
#include
int k,i,j,a[20][20];
cout<<"k=";cin>>k;
cout<<"vecinii nodului"<for(i=1;i<+n;i++)
if(a[k][i]==1)
cout< int p,v[20];
cout<<"p=";cin>>p;
for(i=1;i<=p;i++)
cin>>v[i];
int ok=1;
for(i=1;i<=p-1;i++)
if(a[v[i]][v[i+1]]==0)
ok=0;
if(ok==0)
cout<<"Nodurile nu reprezinta lant";
else
{for(i=1;i<=p-1;i++)
for(j=i+1;j<=p;j++)
if(v[i]==v[j])
ok=0;
if(ok==0)
cout<<"lantul este neelementar";
else
cout<<"lantul este elementar";}
return 0;

Posted on 23:10 by laviniutorcea

/*Sa se genereze toate lanturile elementare de lungime l dintr-un graf
neprientat cu n varfuri.*/
#include
#include#include
int st[20],ok,i,j,n,p,l;
vois tipar(int k)
ofstream f("mat.out")
ifstream g("mat.in")
void tipar(int k)
{int i,j;
for(i=1;i<+n;i++)
for(j=1;j<=n;j++)
f<}
int valid(int k)
{int i,ok=1;
for(i=1;i<=n;i++)
if(st[i]==st[k])
ok=0;
if(k>1)
if(a[st[k]][st[k-1]]==0)
ok=0;
return ok;}
void back(int k)
{int x;
for(x=1;x<=n;x++)
{st[k]=x;
if(valid(k))
if(k==l+1)
tipar(k);
else
back(k+1);}}
int main()
cout<<"lant";cin>>l;
f>>n>>m;
for(i=1;i<=n;i++)
{f>x;
f>>y;
a[x][y]=1;
a[y][x]=0;
for(j=1;j<=n;j++)
cout<cout<if(p==0)
cout<<"nu avem lant";
f.close();
g.close();
return 0;}4

Grafuri neorientate

Posted on 22:29 by laviniutorcea

Teoreme

1.Numarul total de grafuri neorientate cu n noduri este 2^C^n^2.
2.Suma gradelor tuturor nodurilor unui graf neorientat este egala cu dublul numarului de muchii.
3.Daca graful G neorientat are n noduri,n>2,atunci cel putin 2 noduri au acelasi grad.
4.Pentru orice graf neorientat numarul nodurilor de grad impar este par.
5.Numarul minim de muchii pe care trebuie sa le aiba un graf neorientat cu n noduri,ca sa nu existe noduri izolate este[n+1/2].

Test Greedy 17.02.2010

Posted on 23:08 by laviniutorcea

/*R2.Se da un sir de numere naturale citite de la tastatura pana la intalnirea lui 0.
Sa se determine un grup maxim de elemente din sir cu proprietatea ca suma valorilor impare
este cel mult egala cu o valoare m.*/
#include
#include
int main()
{int i=1,j,n,s=0,k;
int v[20],aux;
cout<<"n=";cin>>n;
cout<<"v[1]=";cin>>v[1];
while(v[i]!=0)
{i++;
cout<<"v["<>v[i];
}
k=i-1;
for(i=1;i for(j=i+1;j<=k;j++)
if(v[i]>v[j])
{aux=v[i];
v[i]=v[j];
v[j]=aux;}
for(i=1;i<=k;i++)
if(v[i]%2==1 && s+v[i]<=n)
{cout< s=s+v[i];}
getch();
return 0;}

Problema rucsacului

Posted on 02:48 by laviniutorcea

#include
#include
int i,j,n,g1;
cout<<"n=";cin>>n;
cout<<"g1=";cin>>g1;
struct {int nr,c,g;} v[20],aux;
for(i=1;i<=n;i++)
{v[i].nr=i;
cout<<"castigul"<>v[i].c;
for(i=1;ifor(j=i+1;j<=n;j++)
if(v[i].c{aux=v[i];
v[i]=v[j];
v[j]=aux;}
for(i=1;i<=n;i++)
if(v[i].g<=g1)
{cout<g1=g1-v[i].g;}
return 0;}