Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///pr1
- #include<fstream>
- using namespace std;
- ifstream cin("dfs.in");
- ofstream cout("dfs.out");
- void DFS(int k);
- int a[105][105];
- int v[105];
- int n;
- int main()
- {
- int i,j,k,m,n0,x,y;
- cin>>n>>m>>n0;
- for(i=1;i<=m;i++)
- {
- cin>>x>>y;
- a[x][y]=1;
- a[y][x]=1;
- }
- DFS(n0);
- cin.close();
- cout.close();
- return 0;
- }
- void DFS(int k)
- {
- int i;
- v[k]=1;
- cout<<k<<" ";
- for(i=1;i<=n;i++)
- {
- if(a[k][i]==1 && v[i]==0)
- {
- DFS(i);
- }
- }
- }
- ///
- ///pr2
- //
- #include<fstream>
- using namespace std;
- ifstream cin("soarece.in");
- ofstream cout("soarece.out");
- void Back(int i,int j,int k);
- int di[]={-1,0,1,0};
- int dj[]={0,1,0,-1};
- int a[105][105];
- int n,m,nrp;
- int i_start,j_start;
- int i_stop,j_stop;
- int next_i,next_j;
- int main()
- {
- int i,j;
- cin>>n>>m;
- for(i=1; i<=n; i++)
- {
- for(j=1; j<=m; j++)
- {
- cin>>a[i][j];
- }
- }
- for(j=0; j<=m+1; j++)
- {
- a[0][j]=a[n+1][j]=1;
- }
- for(i=0; i<=n+1; i++)
- {
- a[i][0]=a[i][m+1]=1;
- }
- cin>>i_start>>j_start;
- cin>>i_stop>>j_stop;
- Back(i_start,j_start,1);
- cout<<nrp;
- cin.close();
- cout.close();
- return 0;
- }
- void Back(int i,int j,int k)
- {
- a[i][j]=k;
- if(i==i_stop && j==j_stop)
- {
- nrp++;
- }
- else
- {
- for(k=0; k<4; k++)
- {
- next_i=i+di[k];
- next_j=j+dj[k];
- if(a[next_i][next_j]==0)
- {
- Back(next_i,next_j,k+1);
- }
- }
- }
- a[i][j]=0;
- }
- ///
- ///pr3
- ///
- #include<fstream>
- using namespace std;
- ifstream cin("traseucal.in");
- ofstream cout("traseucal.out");
- void Back(int i,int j,int k);
- int posibil();
- void matrice();
- int di[]={-2,-2,-1,+1,+2,+2,+1,-1};
- int dj[]={-1,+1,+2,+2,+1,-1,-2,-2};
- int a[105][105];
- int s[105][105];
- int n,m,nr;
- int i_start,j_start;
- int i_stop,j_stop;
- int next_i,next_j;
- int main()
- {
- int i,j;
- cin>>n>>m;
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- {
- cin>>a[i][j];
- }
- }
- i_start=j_start=1;
- i_stop=n; j_stop=m;
- Back(i_start,j_start,1);
- cin.close();
- cout.close();
- return 0;
- }
- void Back(int i,int j,int k)
- {
- a[i][j]=k;
- s[i][j]=a[i][j];
- if(i==i_stop && j==j_stop && nr==0)
- {
- matrice();
- nr++;
- }
- else
- {
- for(int c=0;c<8;c++)
- {
- next_i=i+di[c];
- next_j=j+dj[c];
- if(posibil()==1)
- {
- Back(next_i,next_j,k+1);
- }
- }
- }
- a[i][j]=0;
- }
- int posibil()
- {
- if((1<=next_i&&next_i<=n)&&(1<=next_j&&next_j<=m)&&a[next_i][next_j]==0)
- return 1;
- else
- return 0;
- }
- void matrice()
- {
- int i,j;
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- {
- cout<<s[i][j]<<" ";
- }
- cout<<endl;
- }
- }
- ///
- ///pr4
- ///
- #include<fstream>
- using namespace std;
- ifstream cin("traseucalmax.in");
- void Back(int i,int j,int k);
- int posibil();
- void matrice();
- int di[]={-2,-2,-1,+1,+2,+2,+1,-1};
- int dj[]={-1,+1,+2,+2,+1,-1,-2,-2};
- int a[105][105];
- int s[105][105];
- int n,m,nr[105];
- int i_start,j_start;
- int i_stop,j_stop;
- int next_i,next_j;
- int maxim=INT_MIN;
- int main()
- {
- int i,j;
- cin>>n>>m;
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- {
- cin>>a[i][j];
- }
- }
- i_start=j_start=1;
- i_stop=n; j_stop=m;
- Back(i_start,j_start,1);
- cin.close();
- return 0;
- }
- void Back(int i,int j,int k)
- {
- a[i][j]=k;
- s[i][j]=a[i][j];
- if(i==i_stop && j==j_stop)
- {
- if(k>maxim)
- {
- maxim=k;
- matrice();
- }
- }
- else
- {
- for(int c=0;c<8;c++)
- {
- next_i=i+di[c];
- next_j=j+dj[c];
- if(posibil()==1)
- {
- Back(next_i,next_j,k+1);
- }
- }
- }
- a[i][j]=0;
- s[i][j]=0;
- }
- int posibil()
- {
- if((1<=next_i&&next_i<=n)&&(1<=next_j&&next_j<=m)&&a[next_i][next_j]==0)
- return 1;
- else
- return 0;
- }
- void matrice()
- {
- ofstream cout("traseucalmax.out");
- int i,j;
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- {
- cout<<s[i][j]<<" ";
- }
- cout<<endl;
- }
- cout.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement