HDU1878-欧拉回路(入门题+并查集)

题意:

       判断一个图是否是欧拉回路。

欧拉回路:

              图 G 的一个回路,若它通过 G 中每条边一次且仅一次,则称为欧拉回路。

              其中有著名的哥尼斯堡七桥问题或一笔画问题。(原来小时候我们就接触欧拉回路了,欧拉回路还是蛮常见,蛮简单的)

解题思路:

       只要每个点都有入度,出度,那么这个图就是一个欧拉回路。然后再用并查集判断一个图是否是连通的即可。

代码:

 

#include<iostream> 
using namespace std; 
 
const int MAX=1005
 
int dep[MAX],father[MAX],du[MAX]; 
 
int find_set(int x) 

    if(x!=father[x]) 
    { 
        father[x]=find_set(father[x]);//回溯压缩路径 
    } 
    /*所有的子节点的根都归到boss下*/ 
    return father[x]; 

 
void union_set(int f1,int f2) 

    f1=find_set(f1); 
    f2=find_set(f2); 
    if(f1==f2) 
        return ; 
    if(dep[f1]>dep[f2]) 
    { 
        father[f2]=f1; 
    } 
    else 
    { 
        if(dep[f1]==dep[f2]) 
        { 
            dep[f2]++; 
        } 
        father[f1]=f2; 
    } 
    return ; 

 
void init(int n) 

    for(int i=0;i<=n;i++) 
    { 
        father[i]=i; 
        dep[i]=0
    } 
    memset(du,0,sizeof(du)); 

 
int main(void

    int point,edge; 
    int count,i,u,v; 
    bool exist; 
    while(scanf("%d",&point),point) 
    { 
        scanf("%d",&edge); 
        init(point); 
        for(i=0;i<edge;i++) 
        { 
            scanf("%d%d",&u,&v); 
            du[u]++; 
            du[v]++; 
            union_set(u,v);        
        } 
        exist=1
        for(i=0;i<=point;i++) 
        { 
            if(du[i]&&du[i]%2!=0
            { 
             
                exist=0;     
                break
            } 
         
        } 
        for(i=0,count=0;i<=point;i++) 
        { 
            if(du[i]&&i==find_set(i)) 
                count++; 
        } 
        if(exist) 
        { 
            if(count!=1
                cout<<"0"<<endl; 
            else 
                cout<<"1"<<endl; 
        } 
        else 
            cout<<"0"<<endl; 
    } 
    return 0

转载于:https://www.cnblogs.com/cchun/archive/2011/08/20/2520119.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

增强现实技术的9个最新应用趋势

来源&#xff1a;资本实验室摘要&#xff1a;随着AR技术的成熟&#xff0c;AR与行业的融合越来越深入。从设计到营销&#xff0c;从教育到医疗&#xff0c;从出行到文化&#xff0c;AR正在重新定义各产业的思维方式和运行方式。1.教育AR应用程序正在以更具互动性的方式改变教学…

Linux 系统调用 Ptrace 详解

From&#xff1a;https://blog.csdn.net/u012417380/article/details/60470075 Ptrace 详解&#xff1a;https://www.cnblogs.com/tangr206/articles/3094358.html ptrace运行原理及使用详解&#xff1a;https://blog.csdn.net/edonlii/article/details/8717029 ptrace 函数代…

10年软件开发教会我最重要的10件事[转]

1.面向对象比你想象的要难得多 也许只有我有这种想法&#xff0c;不过我曾经以为计算机科学课上学过的“面向对象”是很简单的东西。我的意思是&#xff0c;创建一些类来模拟现实世界能有多难啊&#xff1f;其实&#xff0c;那还真是挺难的。 十年之后&#xff0c;我仍然在…

安卓系统内 的 安卓虚拟机

转载&#xff1a;虚拟大师&#xff0c;让你的系统再安装一个系统&#xff0c;实现Xposed自由&#xff0c;支持摄像头调用http://xposed.appkg.com/2971.html 虚拟大师 VMOS 虚拟大师简介 虚拟大师是 Android 系统上的 Vmvare&#xff0c;完整的且自带 Root 系统能够让你实现无限…

未来一年最有可能成为独角兽的29家美国初创公司

来源&#xff1a; 资本实验室摘要&#xff1a;近期&#xff0c;研究机构PitchBook梳理出了在未来一年最有可能成为独角兽的29家美国初创公司。资本实验室今日投资关注聚焦前沿科技创新与传统产业升级“小兄弟&#xff0c;老夫看你骨骼清奇&#xff0c;天赋异禀&#xff0c;定是…

StreamWriter类的一般使用方法

理解StreamWriter可以对照StreamReader类来进行&#xff0c;因为他们只是读写的方式不同&#xff0c;一个是读&#xff0c;一个是写&#xff0c;其他的差别不是特别大。 StreamWriter继承于抽象类TextWriter&#xff0c;是用来进行文本文件字符流写的类。 它是按照一种特定的编…

Firefox、Chrome 盘助手

From&#xff1a;https://www.runningcheese.com/baiduyun IDM 下载地址&#xff1a;http://www.ucbug.com/soft/26392.html 定制 Firefox、Chrome 下载地址&#xff1a;https://www.runningcheese.com/ 由网友 "哩呵" 制作的 网盘助手 脚本&#xff0c;需要通过拓…

复杂性理论:科学方法的第三个梯级

来源&#xff1a;人机与认知实验室摘要&#xff1a;莫兰认为系统论超越了还原论&#xff0c;复杂性理论又超越了系统论&#xff0c;它们代表着科学方法论依次达到的三个梯级。复杂性研究从20世纪末叶兴起&#xff0c;目前在国内外已成为许多学科领域内研究的前沿和热点。它涉及…

hdu 1241 Oil Deposits 解题报告

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1241 第一次写搜索代码 花了好大的功夫检查 看了别人的结题报告 还是错误一大堆 哎 题目是这样的 表示油田 *表示非油田 与其八个方向组成一片连续油田 一个*组成的图 文有几片油田 思路&#xff1a;没被标记找…

Notepad++ 简单使用

github 下载地址&#xff1a;https://github.com/notepad-plus-plus 简介 Notepad 是 Windows 下的一款免费开源代码编辑器&#xff0c;它使用较少的CPU功率&#xff0c;降低电脑系统能源消耗&#xff0c;但轻巧且执行效率高&#xff0c;使得 Notepad 可完美地取代微软视窗的记…

MIT:机器学习预测2018世界杯冠军

来源 &#xff1a;199IT互联网数据中心摘要&#xff1a;麻省理工学院报道&#xff0c;他们的研究人员开发了一种新型人工智能&#xff0c;用以预测世界杯走势。麻省理工学院报道&#xff0c;他们的研究人员开发了一种新型人工智能&#xff0c;用以预测世界杯走势。研究人员声称…

安卓逆向_20 --- 模拟器检测、反调试检测、ELF动态调试、__libc_init 下断

From&#xff08; 模拟器检测实战分析 &#xff09;&#xff1a;https://www.bilibili.com/video/BV1UE411A7rW?p65 怎样过 app 的模拟器检测&#xff1a;https://bbs.pediy.com/thread-249759.htm Android 模拟器如何不被检测思路&#xff1a;https://bbs.pediy.com/thread…

2017-2018中国机器人创新Top100榜单深度分析

来源&#xff1a;产业创新创投数据平台Innov100摘要&#xff1a;人类和机器人由相互隔离、保持距离发展到充分的人机交互&#xff0c;融合共生。一、2017-2018年中国机器人创新Top100榜单二、中国机器人创新Top100数据分析&#xff08;一&#xff09;机器人创新Top100产业生态分…

[SCM]源码管理 - perforce快速入门

Perforce是目前比较流行的集中式的源代码管理工具&#xff0c;在很多的欧美跨国公司被广泛的使用。他能够运行于Windows&#xff0c;Linux&#xff0c;Mac几乎所有的平台&#xff0c;支持客户端&#xff0c;命令行&#xff0c;IDE集成&#xff0c;操作系统shell&#xff0c;API…

揭秘:机器究竟是怎么学习的?

来源&#xff1a;雪球摘要&#xff1a;从算法的角度看&#xff0c;机器学习有很多种算法&#xff0c;例如回归算法、基于实例的算法、正则化算法、决策树算法、贝叶斯算法、聚合算法、关联规则学习算法和人工神经网络算法。从算法的角度看&#xff0c;机器学习有很多种算法&…

安卓逆向_21 --- Java层和so层的反调试( IDA 动态调试 JNI_OnLoad、init_array下断)

1. 安卓程序动态调试条件 安卓程序动态调试条件 ( 2个满足1个即可 )&#xff1a; 1. 在 AndroidMainfest.xml ---> application 标签下&#xff0c;设置或者添加属性 android:debuggable"true" 2. 系统默认模式&#xff0c;在 build.prop(boot.img)&#xff0c;…

JavaScript MSN 弹出消息框

** 类名&#xff1a;CLASS_MSN_MESSAGE ** 功能&#xff1a;提供类似MSN消息框 ** 示例&#xff1a; ** 作者&#xff1a;ttyp ** 邮件&#xff1a;ttyp21cn.com ** 日期&#xff1a;2005-3-18 ** **/ JS 代码&#xff1a; // JScri…

一文读懂:深扒人脸识别60年技术发展史

来源&#xff1a;与非网摘要&#xff1a; “他来听我的演唱会&#xff0c;门票换了手铐一对”。最近歌神张学友变阿SIR&#xff0c;演唱会上频频抓到罪犯&#xff0c;将人脸识别技术又一次推到了大众的视线中。“他来听我的演唱会&#xff0c;门票换了手铐一对”。最近歌神张学…

安卓逆向_22( 一 ) --- Xposed【 Android Studio + Xposed 实现简单的 hook 】

From&#xff1a;使用渗透测试框架 Xposed 框架 hook 调试 Android APP&#xff1a;https://www.freebuf.com/articles/terminal/56453.html Xposed框架分析&#xff1a;https://blog.csdn.net/zjx839524906/article/details/81046844 xposted框架 原理 Xposed框架之函数Hoo…

【数据采集】将16进制字符串转化为Double类型输出(依照IEEE754标准)

因为需要读取二进制文件中包含的数据&#xff0c;故需要这样一个转化过程。 鄙人功力太浅&#xff0c;主要参照http://www.cnblogs.com/xinjun/archive/2010/07/28/1787297.html&#xff0c;略有改动&#xff0c;以保证编译运行通过。 1 #include <iostream> 2 #include…