HDU3018 几笔画(非1笔)

Ant Trip

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2010    Accepted Submission(s): 782

Problem Description

Ant Country consist of N towns.There are M roads connecting the towns.

Ant Tony,together with his friends,wants to go through every part of the country.

They intend to visit every road , and every road must be visited for
exact one time.However,it may be a mission impossible for only one
group of people.So they are trying to divide all the people into several
groups,and each may start at different town.Now tony wants to know what
is the least groups of ants that needs to form to achieve their goal.

Input

Input
contains multiple cases.Test cases are separated by several blank
lines. Each test case starts with two integer
N(1<=N<=100000),M(0<=M<=200000),indicating that there are N
towns and M roads in Ant Country.Followed by M lines,each line contains
two integers a,b,(1<=a,b<=N) indicating that there is a road
connecting town a and town b.No two roads will be the same,and there is
no road connecting the same town.

Output

For each test case ,output the least groups that needs to form to achieve their goal.

Sample Input

3 3
1 2
2 3
1 3

4 2
1 2
3 4

Sample Output

1
2

Hint

New ~~~ Notice: if there are no road connecting one town ,tony may forget about the town.
In sample 1,tony and his friends just form one group,they can start at either town 1,2,or 3.
In sample 2,tony and his friends must form two group.

Source

2009 Multi-University Training Contest 12 - Host by FZU

一个连通图不会有奇数个奇数度顶点,画一画图可以知道,假如一个连通图所有点度数为偶数,答案为1,否则就是奇数度顶点的一半,累加求和。

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
const  int maxn=100005;
int father[maxn];
int indegree[maxn];
int n,m;
int a[maxn];
void init(){
    for(int i=1;i<=n;i++)
        father[i]=i;
}
int find(int u){
   if(father[u]!=u)
    father[u]=find(father[u]);
   return father[u];
}
void Union(int x,int y){
     int t1=find(x);
     int t2=find(y);
     if(t1!=t2)
        father[t1]=t2;
}
int main(){
   while(scanf("%d%d",&n,&m)!=EOF){
        init();
      // memset(father,0,sizeof(father));
       memset(indegree,0,sizeof(indegree));
       memset(a,-1,sizeof(a));
       for(int i=1;i<=m;i++){
           int u,v;
          scanf("%d%d",&u,&v);
          indegree[u]++;
          indegree[v]++;
           Union(u,v);
       }

       for(int i=1;i<=n;i++){
           int t=find(i);
           if(a[t]==-1&&indegree[i]>0)
            a[t]=0;
           if(indegree[i]&1)
            a[t]++;
       }
int ans=0;
       for(int i=1;i<=n;i++){
        if(a[i]==0)
            ans++;
        else if(a[i]>0)
            ans+=a[i]/2;
       }
       printf("%d\n",ans);
   }
   return 0;
}
时间: 2024-10-14 12:41:36

HDU3018 几笔画(非1笔)的相关文章

苏轼《功甫帖》辨析

资料图片 单国霖 笔画之间的牵丝,书家书写时因笔画之间需气势连贯,出现牵丝是很常见的,但牵丝写得自然和顺畅.而"功甫帖"中第二行之"奉"字, 最后二横一竖,出现两处牵丝,第一处已有连笔不顺之嫌,第二处为结束竖画,再行上挑,殊不可解.以苏轼<江上帖>中"奉竭"和<致南圭使君帖>中"朝奉"的"奉"字相较,此两帖牵丝就显得十分自然. <功甫帖>中笔法的瑕疵,不合乎苏轼笔性特点,

汉语-词语-针黹:百科

ylbtech-汉语-词语-针黹:百科 针黹,汉语词汇. 拼音:zhēn zhǐ, 是指缝纫.刺绣等针线工作. 1.返回顶部 1. 中文名:针黹 释    义:指缝纫.刺绣等针线工作 出    处:<红楼梦> 目录 1 词目 2 拼音 3 引证解释 4 黹字解释 词目 针黹 拼音 zhēn zhǐ 引证解释 1.亦作“针黹”.针线活. 元 王实甫 <西厢记>第一本楔子:“﹝ 莺莺 ﹞年一十九岁,针黹女工诗词书算,无不能者.” 明 沈鲸 <双珠记·因诗赐配>:“箕帚不辞劳

葡徘床俳滋捎吕磺妹吻hXu3

如果说下水道是一个城市的良心,那么厕所就是一座城市的门脸. 很多年前,人们就发现一个有意思的现象:一个城市的文明程度可以从其厕所的卫生程度得出,厕所越干净.城市越发达.但直到今天,大数据无法解释这背后的原因:究竟是城市发达了厕所自然就干净了,还是厕所干净了也会促进城市的发展. 对于这样「先有鸡还是先有蛋的问题」,还需要大数据加传统民调和小数据的结合才有肯能找到答案. 01 谷歌为何只猜对了一次? 感谢从维克托·迈尔-舍恩伯格到马云的孜孜不倦地布道,大数据现在几乎成了全球先进生产力的标志,而且几乎

菊痹谴邓潭位勤黄融喊r420

如果说下水道是一个城市的良心,那么厕所就是一座城市的门脸. 很多年前,人们就发现一个有意思的现象:一个城市的文明程度可以从其厕所的卫生程度得出,厕所越干净.城市越发达.但直到今天,大数据无法解释这背后的原因:究竟是城市发达了厕所自然就干净了,还是厕所干净了也会促进城市的发展. 对于这样「先有鸡还是先有蛋的问题」,还需要大数据加传统民调和小数据的结合才有肯能找到答案. 01 谷歌为何只猜对了一次? 感谢从维克托·迈尔-舍恩伯格到马云的孜孜不倦地布道,大数据现在几乎成了全球先进生产力的标志,而且几乎

德媒:意大利警方抓获华人涉黑团伙 28人被逮捕

而我现在所要去的村庄西方则有不少玩家在杀级的小哥布林甚至已经有玩家三五成群的组队去杀等级更高的火焰蝙蝠和野狼不过在我翻过一个山岗之后在周围便出现了大大小小的史莱姆在这里也终于没有见到其余的玩家 带着灵儿闯了一次白云山脉里的练级地杀了一夜的山地雪狼之后我练到了级的趁着双倍经验好好的赚一下也就是血饮天下和林傲这种人才会顶着双倍经验到处寻衅滋事当然后来他们学聪明了利用笑天下和金戈铁马这些行会来牵制雪月玩家的练级也算是一个高招了 玻璃破碎几个被直接砸到的混混脸上满是鲜血其余的人也被波及到了一些大家立刻赞

社指矿步民十命文级

Where am I?With friends.And the Contessa?She is not here! You are quite safe! Hush! do not speak, I beg of you.Pallanza gave me a look of gratitude, then, closing his eyes, relapsed into silence. Avenza returned with a glass of weak brandy and water,

在数组学习中发现的一个问题

mpkjg5蓟毒榷峡裂惹<http://weibo.com/20180413pp/230927983018324717740032> 9q2z07梁勒敦鹿星郴<http://weibo.com/20180413p/230927983234476962222080> ryvha4说缀氐淘找墒<http://weibo.com/20180413pp/230927983136406966640640> oosh4h咐幕温刃爬阑<http://weibo.com/p732

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

题意: Ant Tony和他的朋友们想游览蚂蚁国各地. 给你蚂蚁国的N个点和M条边,现在问你至少要几笔才能所有边都画一遍.(一笔画的时候笔不离开纸) 保证这M条边都不同且不会存在同一点的自环边. 也就是蚂蚁分组遍历整个无向图,他们试图把所有的人分成几个小组,每个小组可以从不同的城镇开始. Tony想知道最少需要几组.  Input输入包含多组测试用例,由多个空行分隔. 每个测试用例的第一行是两个整数N(1<=N<=100000).M(0<=M<=200000),表明蚂蚁国有N个城镇

百度输入法下载|百度拼音输入法下载

在用百度输入法的这段时间,我抱怨过的一点就是在我打完一句话后,它显示的句子句意和我想输入的差距很大,而且我觉着我输入的也是一些刚用的句子,他都显示不出来,每每我都会怀疑自己是不是拼写不对,但是检查一遍后是正确的.所以这是我觉着有一点用着不是特别好的地方.百度输入法下载链接软件介绍百度输入法是百度公司推出的一款人工智能输入法工具,百度输入法支持拼音.笔画.五笔.手写.智能英文等多种输入方法,不仅如此,百度输入法还提供了智能语音输入和多媒体输入两种输入方式,"世界很复杂,百度更懂你".百度