ĐỀ THI MÔN Cấu Trúc Dữ Liệu và Giải Thuật học viện công nghệ bưu chính viễn thông (31)

4 397 0
ĐỀ THI MÔN Cấu Trúc Dữ Liệu và Giải Thuật học viện công nghệ bưu chính viễn thông (31)

Đang tải... (xem toàn văn)

Thông tin tài liệu

M¹nh D¬ng Biªn So¹n Bé M«n CÊu Tróc D÷ LiÖu Gi¶i ThuËt 2012 §ª Sè 30 C¸ch 2 Trong Bé §Ò ¤n TËp #include<iostream.h> #include<fstream.h> #include<math.h> #include<conio.h> #include<time.h> #include<string.h> #include<stdio.h> ifstream datain("C:/cau truc du lieu/dethi/data30.in.txt"); ofstream dataout("C:/cau truc du lieu/dethi/ketqua30e.out.txt"); /* Tao Nut Giao Thong Ung Y Va Hanh Phuc Nhat */ int a[100][100],n,dem=0,aa[100],bb[100],x[100],dem1; void NhapDL(int &n) { datain>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) datain>>a[i][j]; for(int i=1;i<=n;i++) { int k=0; for(int j=1;j<=n;j++) if(a[i][j]==1) { if(j>i) {dem++; aa[dem]=i; bb[dem]=j;} } } } void DFS(int i) { x[i]=1; for(int j=1;j<=n;j++) if(x[j]==0&&a[i][j]==1)DFS(j); } int LienThong() { for(int i=1;i<=n;i++) x[i]=0; DFS(1); for(int i=1;i<=n;i++) if(x[i]==0)return 0; return 1; } void DFS(int i,int j,int ax[][100]) { x[i]=1; for(int k=1;k<=n;k++) if(ax[i][k]==1&&x[k]==0){ if(k==j) { dem1=1; return ; } DFS(j,k,a); } } int KT(int ax[][100],int n) { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i!=j){ dem1=0; for(int k=1;k<=n;k++) x[k]=0; DFS(i,j,ax); if(dem1==0)return 0; } return 1; } int ThucHien(int ax[][100]) { for(int i=0;i<=pow(2,dem)-1;i++) {int xx[100]; int min=0; int j=i; while(i>0) { min++; xx[min]=i%2; i=i/2; } i=j; for(int j=1;j<=n;j++) for(int k=1;k<=n;k++) ax[j][k]=0; for(int k=1;k<=dem;k++) if(xx[k]==0) ax[aa[k]][bb[k]]=1; else ax[bb[k]][aa[k]]=1; if(KT(ax,n)==1)return 1; } return 0; } main() { NhapDL(n); cout<<dem<<endl; if(LienThong()==0)dataout<<"Vo Nghiem"<<endl; else { int ax[100][100]; if(ThucHien(ax)==1) { dataout<<dem<<endl; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(ax[i][j]==1){dataout<<i<<" "<<j<<endl;cout<<i<<" "<<j<<endl;} } else dataout<<"Vo Nghiem"<<endl; } } . TËp #include<iostream.h> #include<fstream.h> #include<math.h> #include<conio.h> #include<time.h> #include<string.h> #include<stdio.h> ifstream datain("C:/cau truc du lieu/dethi/data30.in.txt"); ofstream dataout("C:/cau truc du lieu/dethi/ketqua30e.out.txt"); /* Tao Nut Giao Thong Ung Y Va

Ngày đăng: 27/07/2015, 08:28

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan