1530:Ant Trip

【题目描述】

原题来自:2009 Multi-University Training Contest 12 - Host by FZU

给你无向图的 N 个点和 M 条边,保证这 M 条边都不同且不会存在同一点的自环边,现在问你至少要几笔才能所有边都画一遍。(一笔画的时候笔不离开纸)

【输入】

多组数据,每组数据用空行隔开。

对于每组数据,第一行两个整数 N,M 表示点数和边数。接下去 M 行每行两个整数 a,b,表示 a,b 之间有一条边。

【输出】

对于每组数据,输出答案。

【输入样例】

3 3
1 2
2 3
1 3 4 2
1 2
3 4

【输出样例】

1
2

【提示】

数据范围与提示:

1≤N≤10^5,0≤M≤2×10^5,1≤a,b≤N

统计一张不一定联通的无向图中欧拉路径数量

sol:用并查集维护联通性,一个联通块中的数量就是其中奇点个数/2,如果没有就是1

 #include <bits/stdc++.h>
using namespace std;
const int N=;
int n,m;
int Deg[N],Jidian[N],Father[N];
bool Used[N];
inline int Get_Father(int x)
{
return (Father[x]==x)?(x):(Father[x]=Get_Father(Father[x]));
}
int main()
{
// freopen("ant.in","r",stdin);
// freopen("my.out","w",stdout);
int i;
while(~scanf("%d%d",&n,&m))
{
for(i=;i<=n;Father[i]=i,Used[i]=Deg[i]=Jidian[i]=,i++);
for(i=;i<=m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
Deg[x]++;
Deg[y]++;
int xx=Get_Father(x),yy=Get_Father(y);
if(xx==yy) continue;
Father[xx]=yy;
}
for(i=;i<=n;i++)
{
Jidian[Father[i]=Get_Father(i)]+=(Deg[i]&);
}
int ans=;
for(i=;i<=n;i++) if(Father[i]==i)
{
if(!Deg[i]) continue;
if(!Jidian[i]) ans++;
else ans+=(Jidian[i]>>);
}
printf("%d\n",ans);
}
return ;
}
/*
input
3 3
1 2
2 3
1 3
4 2
1 2
3 4
output
1
2
*/

一本通1530 Ant Trip的更多相关文章

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

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

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

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

  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. HDU3018:Ant Trip(欧拉回路)

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

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

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

  7. HDU 3108 Ant Trip

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

  8. Ant Trip HDU - 3018(欧拉路的个数 + 并查集)

    题意: Ant Tony和他的朋友们想游览蚂蚁国各地. 给你蚂蚁国的N个点和M条边,现在问你至少要几笔才能所有边都画一遍.(一笔画的时候笔不离开纸) 保证这M条边都不同且不会存在同一点的自环边. 也就 ...

  9. Ant Trip(区别于二分匹配中最小路径覆盖的一笔画问题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3018 题目: Problem Description Ant Country consist of ...

随机推荐

  1. PAT A1029 Median (25 分)——队列

    Given an increasing sequence S of N integers, the median is the number at the middle position. For e ...

  2. Bootstrap动态轮播

    一.前台界面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...

  3. Trusted Block Chain Summit(2018.10.09)

    时间:2018.10.09地点:北京金隅喜来登大酒店

  4. Sql 截取字段中的字符串

    取 a 字段里有字符x后面的数 right(a, charindex('x',reverse(a))-1))      reverse(字段) 这个函数是把字段倒过来并转换成nvarchar类型 取 ...

  5. DefWindowProc是一个会产生消息的函数

    先看一道题目: 当用户点击右上角关闭按钮的时候,请给下列Windows做出的响应排个序:A:发送 WM_QUIT 消息     B:发送 WM_CLOSE 消息     C:发送 WM_DESTROY ...

  6. 【译】快速起步-JSX简介

    react version: 15.5.0 快速起步-JSX简介 思考这个变量申明: const element = <h1>Hello, world!</h1>; 这个有趣的 ...

  7. 聊聊Zookeeper应用场景、架构设计、选主机制

    Zookeeper作为一个分布式协调系统提供了一项基本服务:分布式锁服务,分布式锁是分布式协调技术实现的核心内容.像配置管理.任务分发.组服务.分布式消息队列.分布式通知/协调等,这些应用实际上都是基 ...

  8. sql文件或连接数据库反向生成pdm文件

    1. File -> Reverse Engineer -> Database 2.选择sql数据库类型 mysql / sqlserver  /oracle 3.using script ...

  9. 软工个人博客-week7

    Part 1       No Silver Bullet - Essence and Accidents of Software Engineering软件工程中没用通用的方法或者技术让软件工程在短 ...

  10. kNN算法学习(一)

    1.首先需要一些训练样本集,例如一道问题(数据)及答案(标签),可以看做一条样本,那么多条,就是样本集 当然这里应该是一条数据及该数据所属的分类,该类别称为标签 2.现在我们已经知道数据与所属类别的对 ...