欧拉回路(简单判断是否有欧拉回路存在)
https://cn.vjudge.net/contest/209173#problem/N
题目大意:给出N个点,M条边,问有没有欧拉回路存在。
题目分析:1.无向图欧拉回路是否连通2.所有点的度为偶数。并查集+degree【】
代码:
#include<iostream>
#include<stdio.h>
#include<string.h>using namespace std;const int maxn=1000+10;
int degree[maxn];
int fa[maxn];int findset(int i)
{if(fa[i]==-1)return i;return fa[i]=findset(fa[i]);
}
void init()
{memset(fa,-1,sizeof(fa));memset(degree,0,sizeof(degree));
}
int main()
{int m,n;int u,v;int cnt;while(scanf("%d",&n)){cnt=0;if(n==0)break;init();scanf("%d",&m);for(int i=1;i<=m;i++){scanf("%d%d",&u,&v);//cout<<"***"<<endl;degree[u]++;degree[v]++;int pa=findset(u);int pb=findset(v);if(pa!=pb){fa[pa]=pb;}// cout<<"hahaha"<<endl;}/* for(int i=1;i<=n;i++){cout<<"fa[i]"<<" "<<i<<" "<<fa[i]<<endl;}*/for(int i=1;i<=n;i++){cout<<"findset(i)<<"<<findset(i)<<endl;cout<<"fa[i]<<"<<fa[i]<<endl;//这里运行一下,发现findset(i)跟fa[i]在起点处还是不同的。找祖先的话要用findsetif(findset(i)==i){cnt++;}}if(cnt>1){printf("0\n");continue;}// for(int i=1;i<=n;i++)//{// cout<<degree[i]<<"degree[]"<<endl;//}cnt=0;//计数奇数度的点for(int i=1;i<=n;i++)if(degree[i]%2==1)cnt++;if(cnt!=0)printf("0\n");else printf("1\n");}return 0;
}
欧拉回路(简单判断是否有欧拉回路存在)相关推荐
- 简单判断用户重复登录,记录一下
Code //判断用户是否重复登录 string key = TextBox1.Text; //用户名文本框设为cache关键字 string uer = Convert.ToString(Cache ...
- php 判断苹果还是安卓,PHP简单判断iPhone、iPad、Android及PC设备的方法
本文实例讲述了PHP简单判断iPhone.iPad.Android及PC设备的方法.分享给大家供大家参考,具体如下: 因为工作需要我们需要知道是什么样了用户访问了我网站了,现在的移动设备种类多了,下面 ...
- js简单判断身份证合法性以及身份证生日合法性
该函数可以判断身份证生意是否合法,简单判断是否符合身份证规则,没有验证区县等等,借鉴了网络上的一些写法.. function idCard(UUserCard, num) { // 身份证号码为15位 ...
- html判断用户名的合法性,javascript简单判断输入内容是否合法的方法
本文实例讲述了javascript简单判断输入内容是否合法的方法.分享给大家供大家参考,具体如下: 关于检测用户输入的内容是否有非法的字符检测实现思路 1.定义合法的字符串(源字符串) 2.获取用户输 ...
- js 超简单 判断是否字符串是否为纯数字
js 超简单 判断是否字符串是否为纯数字 if(Number(num)+'' !==NaN+'' ){console.log('是纯数字') }else{console.log('不是纯数字') }
- JavaScript案例之使用验证码进行简单判断
JavaScript案例之使用验证码进行简单判断 源代码: <!DOCTYPE html> <html><head><meta charset="u ...
- python如何判断列表是否为空_python简单判断序列是否为空的方法
python简单判断序列是否为空的方法 本文实例讲述了python简单判断序列是否为空的方法.分享给大家供大家参考.具体如下: 假设有如下序列: m1 = [] m2 = () m3 = {} 判断他 ...
- python笔记 之 手机号有效性简单判断
需求 在用户数据清洗中需要简单地判断手机号的有效性,于是从网上查找到运营商的号段,通过简单判断手机号的前三位是不是在号段内和剩余的8位是不是全为数字来简单判断用户手机是否有效. 号段 移动 移动号段包 ...
- php 字符串不相等判断,php简单判断两个字符串是否相等的方法
php简单判断两个字符串是否相等的方法 本文实例讲述了php简单判断两个字符串是否相等的方法.分享给大家供大家参考.具体实现方法如下: function strcomp($str1,$str2){ i ...
最新文章
- linux软中断分析,linux操作系统下的软中断问题分析_linux教程
- u8 和 char如何转化_如何编写高效率稳定的单片机代码
- ALC--软件定义架构的PLC
- vuejs简单介绍特点
- Leetcode 456.132模式
- c语言switch工资怎么弄,超级新手,用switch写了个计算器程序,求指导
- 2018年技术直播PPT干货分享
- java rxtx 64_win7 64为下使用rxtx串口通信
- 高斯过程回归预测Matlab简单实现
- 【CZY选讲·逆序对】
- 中国英语学习论坛(3)
- 我的项目_唐诗可视化项目
- 2021第十二届蓝桥杯大赛软件赛省赛C++ C组真题题解
- 《rust死灵书》阅读笔记
- FCS五色石 | 项目半月报(2020.5.1-2020.5.15)
- json在线编辑(xml转json,json视图,json格式检验,等等)神器
- ⭐❤️zigbee无线通信模块的深入浅出❤️⭐
- 详解Cisco ACS AAA认证
- 【LSTM回归预测】基于matlab LSTM神经网络回归预测【含Matlab源码 2227期】
- OPENCV手势识别抓取图片