Advertisement

1341:【例题】一笔画问题

阅读量:

数据 范围

复制代码
 #include <bits/stdc++.h>

    
 using namespace std;
    
 int mp[1005][1005];
    
 int du[1005];
    
 int path[1005],k;
    
 int n,m,a,b;
    
 void dfs(int x){//搜索路径
    
 	for(int i=1;i<=n;i++)
    
 		if(mp[x][i]==1){
    
 			mp[x][i]=mp[i][x]=0;
    
 			dfs(i);
    
 		}
    
 	path[k++]=x;
    
 }
    
 int main() {
    
     cin>>n>>m;
    
     for(int i=1;i<=m;i++){
    
 		cin>>a>>b;
    
 		mp[a][b]=mp[b][a]=1;
    
 		du[a]++;
    
 		du[b]++;
    
 	}
    
 	int start=1;
    
 	for(int i=1;i<=n;i++)//寻找奇点
    
 		if(du[i]%2!=0) {start=i;break;}
    
 	dfs(start);

全部评论 (0)

还没有任何评论哟~