Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void DFS(int x)
- {
- viz[x]=1;
- cout<<x<<" ";
- for(int j=1;j<=n;j++)
- if(A[x][j]==1 && viz[j]==0)
- DFS(j);
- }
- void BFS(int x)
- {
- int c[101], p, u;
- c[1]=x;
- viz[x]=1;
- fout<<x<<" ";
- p=u=1;
- while(p<=u)
- {
- k=c[p++];
- for(int i=1;i<=n;i++)
- if(a[x][i]==1&&viz[i]==0)
- {
- c[++u]=i;
- viz[i]=1;
- fout<<i<<" ";
- }
- }
- ComponenteConexe2
- #include <fstream>
- using namespace std;
- ifstream fin("componenteconexe2.in");
- ofstream fout("componenteconexe2.out");
- int n,m,a[101][101],viz[101];
- void citire()
- {
- fin>>n;
- int y,z;
- while(fin>>y>>z)
- if(a[y][z]==0)
- {
- m++;
- a[y][z]=a[z][y]=1;
- }
- }
- void dfs(int vf,int nr)
- {
- viz[vf]=nr;
- for(int j=1;j<=n;j++)
- if(a[vf][j]==1&&viz[j]==0)
- dfs(j,nr);
- }
- int main()
- {
- citire();
- int nr=0;
- for(int i=1;i<=n;i++)
- if(viz[i]==0)
- {
- nr++;
- dfs(i,nr);
- }
- int nrnoduri;
- for(int j=1;j<=nr;j++)
- {
- nrnoduri=0;
- for(int i=1;i<=n;i++)
- if(viz[i]==j)
- nrnoduri++;
- m-=nrnoduri-1;
- }
- fout<<m;
- return 0;
- }
- Roy-Warshall
- #include <iostream>
- using namespace std;
- int n,m,a[101][101];
- void citire()
- {
- int x,y;
- cin>>n>>m;
- for(int i=1;i<=m;i++)
- {
- cin>>x>>y;
- a[x][y]=1;
- }
- }
- void RW()
- {
- for(int k=1;k<=n;k++)
- for(int i=1;i<=n;i++)
- for(int j=1;j<=n;j++)
- if(a[i][j]==0)
- a[i][j]=a[i][k]*a[k][j];
- }
- void afisare()
- {
- for(int i=1;i<=n;i++)
- {
- for(int j=1;j<=n;j++)
- cout<<a[i][j]<<" ";
- cout<<'\n';
- }
- }
- int main()
- {
- citire();
- RW();
- afisare();
- return 0;
- }
- Sortare Topologica
- #include <vector>
- #include <fstream>
- using namespace std;
- ifstream fin("topsort.in");
- ofstream fout("topsort.out");
- vector<int> l[400001];
- bool viz[100001];
- int n,m, nr,p[100001],s;
- void citire()
- {
- int x, y;
- fin>>n>>m;
- for(int i=1; i<=m; i++)
- {
- fin>>x>>y;
- l[x].push_back(y);
- }
- }
- void DFS(int x)
- {
- viz[x]=1;
- for(int i=0; i<l[x].size(); i++)
- if(viz[l[x][i]]==0)
- DFS(l[x][i]);
- p[++s]=x;
- }
- int main()
- {
- citire();
- DFS(1);
- for(int i=1;i<=n;i++)
- if(viz[i]==0)
- DFS(i);
- for(int i=s;i>=1;i--)
- fout<<p[i]<<" ";
- return 0;
- }
- TopSort
- #include <vector>
- #include <fstream>
- using namespace std;
- ifstream fin("topsort.in");
- ofstream fout("topsort.out");
- vector<int> l[400001];
- bool viz[100001];
- int n,m, nr,p[100001],s;
- void citire()
- {
- int x, y;
- fin>>n>>m;
- for(int i=1; i<=m; i++)
- {
- fin>>x>>y;
- l[x].push_back(y);
- }
- }
- void DFS(int x)
- {
- viz[x]=1;
- for(int i=0; i<l[x].size(); i++)
- if(viz[l[x][i]]==0)
- DFS(l[x][i]);
- p[++s]=x;
- }
- int main()
- {
- citire();
- DFS(1);
- for(int i=1;i<=n;i++)
- if(viz[i]==0)
- DFS(i);
- for(int i=s;i>=1;i--)
- fout<<p[i]<<" ";
- return 0;
- }
- Turneu
- #include <iostream>
- using namespace std;
- int a[101][101], k, n, v[101];
- void citire()
- {
- int x,y;
- cin>>n;
- int z=n*(n-1)/2;
- for(int i=1;i<=z;i++)
- {
- cin>>x>>y;
- a[x][y]=1;
- }
- }
- void turneu()
- {
- int p;
- if(a[1][2]==1)
- {
- v[1]=1;
- v[2]=2;
- }
- else
- {
- v[1]=2;
- v[2]=1;
- }
- k=2;
- for(int i=3;i<=n;i++)
- {
- if(a[i][v[i]]==1)
- p=k+1;
- else
- if(a[v[k]][i]==1)
- p=k+1;
- else
- {
- int j;
- for(j=1;j<k;j++)
- if(a[v[j]][i]==1&&a[i][v[j+1]]==1)
- break;
- p=j+1;
- }
- for(int j=k;j>=p;j--)
- v[j+1]=v[j];
- v[p]=i;
- k++;
- }
- }
- int main()
- {
- citire();
- turneu();
- for(int i=1;i<=n;i++)
- cout<<v[i]<<" ";
- return 0;
- }
- DSLM
- #include <fstream>
- using namespace std;
- ifstream fin("dslm.in");
- ofstream fout("dslm.out");
- int a[21][21], n, p, lmax, v[101], b[101];
- void citire()
- {
- fin>>n>>p;
- int x,y;
- while(fin>>x>>y)
- a[x][y]=1;
- }
- void DFS(int x, int l)
- {
- b[l]=x;
- for(int i=1;i<=n;i++)
- if(a[x][i]==1)
- {
- a[x][i]=0;
- DFS(i,l+1);
- a[x][i]=1;
- }
- if(l>lmax)
- {
- lmax=l;
- for(int i=1;i<=lmax;i++)
- v[i]=b[i];
- }
- }
- int main()
- {
- citire();
- DFS(p,1);
- for(int i=1;i<=lmax;i++)
- fout<<v[i]<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement