链接:https://www.nowcoder.com/acm/contest/86/D
来源:牛客网

题目描述

震为雷,临危不乱,亨通畅达;巽为风,柔顺伸展,厚载万物。
震卦:洊雷,震,君子以恐惧修省。一口金钟在淤泥,人人拿着当玩石,忽然一日钟悬起,响亮一声天下知。
巽卦:随风,巽,君子以申命行事。一叶孤舟落沙滩,有篙无水进退难,时逢大雨江湖溢,不用费力任往返。

算卦先生来问你,对于每个他给出的无向图,是否存在一条路径能够经过所有边恰好一次,并且经过所有点?不需要满足最后回到起点。

输入描述:

第一行一个数 

 ,表示有 

 组数据。对与每组数据,第一行有两个数 

,接下去 

 行每行两个数 

 描述一条无向边 

。图不保证联通。

输出描述:

对于每组数据,如果存在,输出 

 ,否则输出 

 。 

输入例子:
2
2 2
1 1
2 1
4 6
1 3
1 4
1 2
3 2
4 2
4 3
输出例子:
Zhen
Xun

-->

示例1

输入

复制

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

输出

复制

Zhen
Xun

备注:



 
思路;
1. 使用 欧拉图的充要条件,即 连通图存在欧拉回路当且仅当每个顶点的度为偶数。
连通图存在欧拉通路当且仅当存在 0个或2个 奇度顶点
2. 如果不是连通图则不存在题目中的路径,判断连通图有很多方法,例如 并查集,DFS,BFS,传递闭包等 传送门,本体使用了 dfs
 
AC码:
 
 #include <iostream>
#include <cstring>
using namespace std;
int mapp[][],vis[],sum[];
int n,m;
void dfs(int v){
vis[v]=;
for(int i=;i<=n;i++){
if(mapp[v][i] && !vis[i])
dfs(i);
}
}
int main(){
int t;
cin>>t;
while(t--){
memset(mapp,,sizeof(mapp));
memset(vis,,sizeof(vis));
memset(sum,,sizeof(sum));
cin>>n>>m;
int u,v;
for(int i=;i<m;i++){
cin>>u>>v;
mapp[u][v]=mapp[v][u]=;
//计算顶点的度
sum[u]++;sum[v]++;
}
dfs();
bool flag = false;
//判断是否连通
for(int i=;i<=n;i++)
if(!vis[i]){
flag = true;
break;
}
if(flag)
cout<<"Xun"<<endl;
else{
int cnt=;
//统计奇数定点的个数,如果是 0 || 2 那么就存在欧拉通路
for(int i=;i<=n;i++)
if(sum[i]&)
cnt++;
if(cnt== || cnt==)
cout<<"Zhen"<<endl;
else
cout<<"Xun"<<endl;
}
}
return ;
}

牛客小白月赛2 D 虚虚实实 【欧拉图】【连通图】的更多相关文章

  1. 牛客网 牛客小白月赛2 D.虚虚实实-无向图判欧拉路径

    D.虚虚实实 链接:https://www.nowcoder.com/acm/contest/86/D     这个题是无向图判欧拉路径,首先要判是否连通,然后再判欧拉路径就可以,板子题. 板子来源: ...

  2. 树的最长链-POJ 1985 树的直径(最长链)+牛客小白月赛6-桃花

    求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简 ...

  3. 牛客网 牛客小白月赛5 I.区间 (interval)-线段树 or 差分数组?

    牛客小白月赛5 I.区间 (interval) 休闲的时候写的,但是写的心情有点挫,都是完全版线段树,我的一个队友直接就水过去了,为啥我的就超内存呢??? 试了一晚上,找出来了,多初始化了add标记数 ...

  4. 牛客小白月赛8 - E - 诡异数字 数位DP

    牛客小白月赛8 - E - 诡异数字 题意: 求区间中,满足限制条件的数字的个数. 限制条件就是某些数字不能连续出现几次. 思路: 比较裸的数位DP, DP数组开一个dp[len][x][cnt] 表 ...

  5. 牛客小白月赛18 Forsaken给学生分组

    牛客小白月赛18 Forsaken给学生分组 Forsaken给学生分组 链接:https://ac.nowcoder.com/acm/contest/1221/C来源:牛客网 ​ Forsaken有 ...

  6. 牛客小白月赛18 Forsaken喜欢数论

    牛客小白月赛18 Forsaken喜欢数论 题目传送门直接点标题 ​ Forsaken有一个有趣的数论函数.对于任意一个数xxx,f(x)f(x)f(x)会返回xxx的最小质因子.如果这个数没有最小质 ...

  7. 牛客小白月赛19 E 「火」烈火燎原 (思维,树)

    牛客小白月赛19 E 「火」烈火燎原 (思维,树) 链接:https://ac.nowcoder.com/acm/contest/2272/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空 ...

  8. 【牛客小白月赛21】NC201604 Audio

    [牛客小白月赛21]NC201604 Audio 题目链接 题目大意: 给出三点 ,求到三点距离相等的点 的坐标. 解析 考点:计算几何基础. 初中蒟蒻表示不会什么法向量.高斯消元..qwq 方法一: ...

  9. 【牛客小白月赛21】NC201605 Bits

    [牛客小白月赛21]NC201605 Bits 题目链接 题目描述 Nancy喜欢做游戏! 汉诺塔是一个神奇的游戏,神奇在哪里呢? 给出3根柱子,最开始时n个盘子按照大小被置于最左的柱子. 如果盘子数 ...

随机推荐

  1. Collections练习之按照字符串长度进行排序

    不多说,直接上干货! 代码需求 想从 [abcde, cba, aa, zzz, cba, nbaa] 变成 [aa, cba, cba, zzz, nbaa, abcde] CollectionsD ...

  2. HDU 5419——Victor and Toys——————【线段树|差分前缀和】

    Victor and Toys Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/131072 K (Java/Others ...

  3. ubuntu 更改源

    1) 备份原来的源 cp /etc/apt/source.list /etc/apt/source.list.old 2) 用下面的文件覆盖 /etc/apt/source.list # 163(非教 ...

  4. 会话状态在此上下文中不可用HttpModule中无法访问Session原因

    写了一个自定义HttpModule,但始终访问不了Session,代码如下: public class RouteModule : IHttpModule, System.Web.SessionSta ...

  5. mysql-查询(DQL)

    + 注释:mysql中的+号只有一个作用,就是运算符,没有连接字符串的作用,连接字符串用concat. ;两个操作数都是数值型,则做加法运算. ; :只要其中有一个时字符型,则会试图将字符转换为数值型 ...

  6. if转switch

    if($a=="a") { echo "a"; } elseif ($a == "b") { echo "b"; } e ...

  7. Implementation with Java

    Implementation with Java From:http://jcsc.sourceforge.net In general, follow the Sun coding conventi ...

  8. c#和c++的运算符优先级

    闲来无聊乱写代码.发现基础的东西有的时候也非常的抽象.不信?那来看看下面这条语句: ; ; j = i = -i++; 如果上述代码是vc++代码,那么输出结果是: i=- j=- 请按任意键继续. ...

  9. 【从业余项目中学习1】C# 实现XML存储用户名密码(MD5加密)

    最近在写一个C#的项目,用户需求是实现Winform的多文档界面与Matlab算法程序之间的交互.做了一段时间发现,这既能利用业余时间,实战中也可学习一些技术,同时刚毕业也增加一份收入.所以后面会不断 ...

  10. php-fpm如何优化进程数

    参考链接: php-fpm进程数优化