首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一笔画问题

一笔画问题

作者头像
attack
发布2018-04-12 16:04:30
5620
发布2018-04-12 16:04:30
举报

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 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-04-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档