欧拉回路(hdu3018)

欧拉回路(hdu3018)

 

刚学图论不久,看着别人的博客慢慢学了一点基础的,感觉还是有点力不从心,感觉图论的题好多长得都很像,什么太监算法(Tarjan),Kosaraju,当然最基础的还是并查集。。。好了继续介绍这道题。。。。

题意:蚂蚁王国有n个城市(n个点),要求输入的是第a个城市可以到第b个城市(m个边),求最少画几笔覆盖全部边。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 using namespace std;
 5 #define m 100002
 6 int point[m];///每个强连通分量的端点
 7 int cnt;///计数
 8 int fa[m];///并查集的父亲节点
 9 int qiang[m];///强连通分量
10 bool used[m];///记录有没有访问过
11 int du[m];///度,如果是偶数的话+1,如果是奇数的话+=点数*1/2;
12 void unit(int n)
13 {
14     cnt=0;
15     for(int i=0;i<=n;i++)
16     {
17         point[i] = 0;
18         qiang[i] = 0;
19         fa[i]=-1;
20         used[i]=0;
21     }
22 }
23 int find(int x)
24 {
25     if(fa[x] >= 0)
26     {
27         fa[x]=find(fa[x]);
28         return fa[x];
29     }
30     return x;
31 }
32 void Union(int a,int b)
33 {
34     int x1 = find(a);
35     int x2 = find(b);
36     if(x1 == x2)
37         return ;
38     int r1 = fa[x1];
39     int r2 = fa[x2];
40     if(r1 < r2)
41     {
42         fa[x2] = x1;
43         fa[x1] += r2;
44     }
45     else
46     {
47         fa[x1]=x2;
48         fa[x2] += r1;
49     }
50 }
51 int main()
52 {
53     int n=0,t=0;
54     int x=0,y=0;
55     while(~scanf("%d%d",&n,&t))
56     {
57         unit(n);
58         cnt=0;
59         for(int i=1;i <= t;i++)
60         {
61             scanf("%d%d", &x , &y);
62 
63             du[x]++;
64             du[y]++;
65             Union(x , y);
66         }
67 
68         for(int i=1;i<=n;i++)
69         {
70             int f = find(i);
71             if( !used[f] )
72             {
73                 used[f] = 1;
74                 qiang[cnt++] = f;
75             }
76             if(du[i]%2 == 1)
77                 point[f]++;
78         }
79         int output=0;
80         for(int i=0;i < cnt;i++)
81         {
82             if(du[qiang[i]] == 0)
83                 continue;
84             if(point[qiang[i]]==0)
85                 output++;
86             else
87             {
88                 output += point[qiang[i]]/2;
89             }
90         }
91         printf("%d\n", output);
92     }
93 }
View Code

 

 
 
 
 
 
 
 
posted @ 2016-05-21 18:25 顾本无缘 阅读(...) 评论(...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值