首页 > 代码库 > 一笔画问题
一笔画问题
l样例输入:第一行n,m,有n个点,m条边,以下m行描述每条边连接的两点。
l 5 5
l 1 2
l 2 3
l 3 4
l 4 5
l 5 1
l样例输出:欧拉路或欧拉回路
l 1 5 4 3 2 1
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int map[1001][1001]; 5 int tj[10001]; 6 int vis[1001]; 7 int n,m; 8 int ans[1001]; 9 int now=1;10 int flag=1;11 void dfs(int i) {12 //cout<<p<<" ";13 for(int j=1; j<=n; j++) 14 {15 if(map[i][j]==1) 16 {17 map[j][i]=map[i][j]=0;18 dfs(j);19 }20 }21 ans[now]=i;22 now++;23 }24 int main() 25 {26 27 scanf("%d%d",&n,&m);28 for(int i=1; i<=m; i++) 29 {30 int x,y;31 scanf("%d%d",&x,&y);32 map[y][x]=map[x][y]=1;33 tj[x]++;34 tj[y]++;35 }36 flag=1;37 for(int i=1; i<=n; i++) 38 if(tj[i]%2==1) 39 {40 flag=i;41 }42 dfs(flag);43 for(int i=1; i<=now-1; i++)44 cout<<ans[i]<<" ";45 return 0;46 }
一笔画问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。