九野的博客,转载请注明出处:  http://blog.csdn.net/acmmmm/article/details/10858065

题意:n个点m条边的无向图,求用几笔可以把所有边画完(画过的边不再画)

思路:

并查集+欧拉回路

对于每个连通分量,若是欧拉回路则一笔画完,若不是则 需要: 奇度数点个数/2

然后把每个连通分量所需的笔数相加

这里要注意一个点是不用画的

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<set>
#include<math.h>
#include<string.h>
#define N 100010
using namespace std;
int f[N],d[N],fenliang[N];
int find(int x){
if(x==f[x])return x;
return f[x]=find(f[x]);
}
int main(){
int n,m,i,j,u,v;
while(~scanf("%d%d",&n,&m)){
for(i=1;i<=n;i++)f[i]=i;
memset(d,0,sizeof(d));
memset(fenliang,-1,sizeof(fenliang));
while(m--)
{
scanf("%d%d",&u,&v);
if(u>v){j=u;u=v;v=j;}
else if(u==v)continue;
f[find(u)]=find(v);
d[u]++,d[v]++;
}
int ans=0;
for(i=1;i<=n;i++)
{
find(i);
if(fenliang[f[i]]==-1 && d[i]>0)fenliang[f[i]]=0;
if(d[i]&1)fenliang[f[i]]++;
}
for(i=1;i<=n;i++)
if(fenliang[i]>0)ans+=fenliang[i]/2;
else if(fenliang[i]==0)ans++;
printf("%d\n",ans);
}
return 0;
}
/*
4 7
1 2
1 3
1 4
2 3
2 4
3 4
3 3 4 5
1 2
2 3
4 4
4 4
4 4 */

HDU 3018 Ant Trip的更多相关文章

  1. [欧拉回路] hdu 3018 Ant Trip

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3018 Ant Trip Time Limit: 2000/1000 MS (Java/Others) ...

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

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

  3. HDU 3018 Ant Trip (欧拉回路)

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

  4. HDU 3018 Ant Trip(欧拉回路,要几笔)

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

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

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

  6. HDU 3108 Ant Trip

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

  7. hdoj 3018 Ant Trip(无向图欧拉路||一笔画+并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 思路分析:题目可以看做一笔画问题,求最少画多少笔可以把所有的边画一次并且只画一次: 首先可以求出 ...

  8. HDU 3018 欧拉回路

    HDU - 3018 Ant Country consist of N towns.There are M roads connecting the towns. Ant Tony,together ...

  9. 一本通1530 Ant Trip

    1530:Ant Trip [题目描述] 原题来自:2009 Multi-University Training Contest 12 - Host by FZU 给你无向图的 N 个点和 M 条边, ...

随机推荐

  1. CSS3学习--dispaly:inline和float:left两者区别

    1.display:inline: 任何不是块级元素的可见元素都是内联元素.其表现的特性是“行布局”形式!(行布局:其表现形式始终以行进行显示)   2.float:left:指定元素脱离普通的文档流 ...

  2. DedeCMS时间格式

    时间格式 {dede:field name='pubdate' function='strftime("%Y年%m月%d日 %H:%M:%S","@me")' ...

  3. c#xml序列化对象,xml标记都缩写了

    最近最后一个接口,他们的格式很严格必须是如下格式 <message> <age>20</age> <name>张三</name> </ ...

  4. AST抽象语法树

    抽象语法树简介 (一)简介 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,这所以说是抽象的,是因为抽象语法树并 ...

  5. 批处理WMIC查看补丁情况

    最近补丁比较多,需要看系统打了些啥,哪些没打的BAT: wmic qfe GET hotfixid > a.txt&(for %i in (KB3076321 KB3072604 KB3 ...

  6. 工作总结:MFC使用Windows自带打开对话框

    代码: ; //Win98 as default LPARAM lModuleParam = ; TV_INSERTSTRUCT tvItem; CString sPathNameSel; ];//1 ...

  7. js 返回前一页并刷新页面方法

    [导读] 要返回上一页再刷新页面我们用到最多的是在像php,asp,jsp,asp.net中,下面我来给大家先介绍js 返回前一页并刷新页面,然后再把这些代码放在php中实现删除后返回当前页面并刷新页 ...

  8. web 缓存

    http://robbinfan.com/blog/38/orm-cache-sumup http://my.oschina.net/ITBoy/blog/23683 http://www.kuqin ...

  9. 执行计划中常见index访问方式(转)

    近期有朋友对于单个表上的index各种情况比较模糊,这里对于单个表上,单个index出现的大多数情况进行了总结性测试,给出了测试结果,至于为什么出现这样的试验结果未做过多解释,给读者留下思考的空间.本 ...

  10. RC隔离 更新where条件列 没有索引的情况

    CREATE TABLE `test100` ( `sn` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增编号', `phoneNo` int(11) , `c ...