题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018

题意:给你一个图,每条路只能走一次。问至少要多少个人才能遍历所有的点和所有的边。

   这是之前没有接触过的知识点。设计欧拉图,不理解直接记住就好啦。

欧拉图:若图G中存在这样一条路径,使得它恰通过G中每条边一次,则称该路径为欧拉路径。

    若该路径是一个圈,则称为欧拉(Euler)回路。具有欧拉回路的图称为欧拉图。

    具有欧拉路径但不具有欧拉回路的图称为半欧拉图。

    一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数,且该图是连通图。

    一个有向图存在欧拉回路,所有顶点的入度等于出度且该图是连通图。

思路:队伍数=奇度数/2+欧拉回路数(欧拉回路中所有顶点的度数均为奇数,且是联通图) 求的是总和。

用并查集找连通图,用不定长数组存连通图。

代码:

#include<iostream>
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
#define ll long long
const int INF=0x3f3f3f3f;
const int maxn=1e5+; int n,m;
vector<int>V;
int p[maxn],odd[maxn],vit[maxn],d[maxn]; void init()
{
V.clear();
for(int i=;i<=n;i++) p[i]=i;
memset(odd,,sizeof(odd));
memset(vit,,sizeof(vit));
memset(d,,sizeof(d));
} int Find(int x)
{
if(x!=p[x]) p[x]=Find(p[x]);
return p[x];
} int main()
{
while(scanf("%d%d",&n,&m)==)
{
init();
for(int i=;i<=m;i++)
{
int a,b;
scanf("%d%d",&a,&b);
d[a]++,d[b]++;
int pa=Find(a);
int pb=Find(b);
if(pa!=pb) p[pb]=pa;
}
for(int i=;i<=n;i++)
{
int k=Find(i);
if(vit[k]==)
{
V.push_back(k);
vit[k]=;
}
if(d[i]%==) odd[k]++;
}
int ans=;
for(int i=;i<V.size();i++)
{
int v=V[i];
if(d[v]==) continue;
if(odd[v]==) ans++;
else ans+=odd[v]/;
}
printf("%d\n",ans);
}
return ;
}

hdu3018 Ant Trip (并查集+欧拉回路)的更多相关文章

  1. HDU 3018 Ant Trip (并查集求连通块数+欧拉回路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 题目大意:有n个点,m条边,人们希望走完所有的路,且每条道路只能走一遍.至少要将人们分成几组. ...

  2. HDU3018:Ant Trip(欧拉回路)

    Ant Trip Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  3. hdu-3018 Ant Trip(欧拉路径)

    题目链接: Ant Trip Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 32768/32768 K (Java/Others) ...

  4. NYOJ 42 一笔画问题 (并查集+欧拉回路 )

    题目链接 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. 规定,所有的边都只能画一次,不能重复画.   输入 第一行只有一个正整数 ...

  5. poj2513 Colored Sticks —— 字典树 + 并查集 + 欧拉回路

    题目链接:http://poj.org/problem?id=2513 题解:通过这题了解了字典树.用字典树存储颜色,并给颜色编上序号.这题为典型的欧拉回路问题:将每种颜色当成一个点.首先通过并查集判 ...

  6. Codeforces 1499G - Graph Coloring(带权并查集+欧拉回路)

    Codeforces 题面传送门 & 洛谷题面传送门 一道非常神仙的题 %%%%%%%%%%%% 首先看到这样的设问,做题数量多一点的同学不难想到这个题.事实上对于此题而言,题面中那个&quo ...

  7. Mutual Training for Wannafly Union #6 E - Summer Trip(并查集)

    题目链接:http://www.spoj.com/problems/IAPCR2F/en/ 题目大意: 给m个数字代表的大小,之后n组数据,两两关联,关联后的所有数字为一组,从小到大输出组数以及对应的 ...

  8. HDU 3018 Ant Trip

    九野的博客,转载请注明出处:  http://blog.csdn.net/acmmmm/article/details/10858065 题意:n个点m条边的无向图,求用几笔可以把所有边画完(画过的边 ...

  9. hdu 3018 Ant Trip 欧拉回路+并查集

    Ant Trip Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem ...

随机推荐

  1. 【03】placeholder

    placeholder   表单占位符解决方案 Css Code :-moz-placeholder, ::-webkit-input-placeholder{ color: #bfbfbf; } . ...

  2. 开启POP3/SMTP服务

    实现发送邮件时需要先启用POP3/SMTP服务(以qq邮箱和网易邮箱启用为例) 一 qq邮箱启用 二.网易邮箱开启POP3/SMTP服务 至此:服务已开启

  3. shit IE & no table `border-collapse: collapse;`

    shit IE no table border-collapse: collapse; /* IE & shit table & border-collapse: collapse; ...

  4. [1143] [CTSC2008]祭祀river(最大独立集 || 偏序集最大反链)

    传送门 网上说这是偏序集最大反链,然而我实在不理解. 所以我换了一个思路,先用floyd,根据点的连通性连边, 问题就转换成了找出最多的点,使任意两个点之间不连边,也就是最大独立集. ——代码 #in ...

  5. [NOIP2007] 普及组

    奖学金 模拟 开个struct排序即可 c++吼啊 /*by SilverN*/ #include<algorithm> #include<iostream> #include ...

  6. Gym 100792 King's Rout 拓扑排序

    K. King's Rout time limit per test 4.0 s memory limit per test 512 MB input standard input output st ...

  7. C#.NET 如何快速输入一个对象事件对应的方法

    直接在Textbox图像对象中找到这个对象的KeyPress方法,然后输入触发的事件名称.效率更高,不容易出错. "void TypeAreaKeyPress(object sender, ...

  8. CCNP路由实验之八 路由重公布

     CCNP路由实验之八 路由重公布 在前面几个实验,已经学习了静态路由和动态路由.如今,我们要掌握怎样使它们在一个网络中融合,即路由重公布. 使用出站口作为静态路由 0 使用下一跳地址作为静态路由 ...

  9. 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习

    反射实现Model修改前后的内容对比   在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...

  10. You don&#39;t have permission to access &#215;&#215;&#215; on this server.

    之前开发项目一直在linux上用的xampp集成环境,前几天突然想移到window上面去. 開始在window上安装了一个集成环境(名字大概是 Uniform Service),把项目文件已过去, o ...