题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42

我是参考了红黑联盟的结题报告了的。但是有一个位置,应该是红黑联盟写错了吧,就是那个连通性的定义这里。

欧拉定理:

1、图是连通的,每两个点之间要直接或者间接相连。(这里红黑联盟好像写错了)

2、奇点总和只能是0或2;

这里的dfs写的很巧妙,我就是在这里WA了,dfs(k)时,如果搜到一条边,然而只增加k这个的度,因为之后dfs(i)时,再加上i的度,而且不会访问k这个点。

之后,帆哥教我直接在建图的时候就把每个点的度写好就可以了。方便很多。两份代码都贴上。

#include <stdio.h>
#include <string.h> bool maps[][];
bool vis[];
int degree[]; int n,m; void dfs(int k)
{
vis[k] = true;
for(int i=;i<=n;i++)
{
if(maps[k][i])
{
degree[k]++;
if(!vis[i])
dfs(i);
}
}
} int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(vis,false,sizeof(vis));
memset(maps,false,sizeof(maps));
memset(degree,,sizeof(degree)); scanf("%d%d",&n,&m); int x,y;
for(int i=;i<m;i++)
{
scanf("%d%d",&x,&y);
maps[x][y] = maps[y][x] = true;
} dfs(); bool flag = true;
for(int i=;i<=n;i++)
{
if(!vis[i])
{
flag = false;
break;
}
}
if(!flag)
printf("No\n");
else
{
int ans = ;
for(int i=;i<=n;i++)
{
if(degree[i]%)
ans ++;
}
if(ans==||ans==)
printf("Yes\n");
else printf("No\n");
}
}
return ;
}
#include <stdio.h>
#include <string.h> bool maps[][];
bool vis[];
int degree[]; int n,m; void dfs(int k)
{
vis[k] = true;
for(int i=;i<=n;i++)
{
if(maps[k][i])
{
if(!vis[i])
dfs(i);
}
}
} int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(vis,false,sizeof(vis));
memset(maps,false,sizeof(maps));
memset(degree,,sizeof(degree)); scanf("%d%d",&n,&m); int x,y;
for(int i=;i<m;i++)
{
scanf("%d%d",&x,&y);
maps[x][y] = maps[y][x] = true;
degree[x]++;
degree[y]++;
} dfs(); bool flag = true;
for(int i=;i<=n;i++)
{
if(!vis[i])
{
flag = false;
break;
}
}
if(!flag)
printf("No\n");
else
{
int ans = ;
for(int i=;i<=n;i++)
{
if(degree[i]%)
ans ++;
}
if(ans==||ans==)
printf("Yes\n");
else printf("No\n");
}
}
return ;
}

NYOJ(42)欧拉图的更多相关文章

  1. nyoj 42

    #include <iostream> #include <stdio.h> #include <cstring> #include <algorithm&g ...

  2. NYOJ 42 一笔画问题

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...

  3. nyoj 42 一笔画问题 欧拉路径

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42 欧拉回路,欧拉路径水题~ 代码: #include "stdio.h&quo ...

  4. nyoj 42 一笔画 欧拉通路

    http://acm.nyist.net/JudgeOnline/problem.php?pid=42 一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 zyc ...

  5. NYOJ 42 一笔画问题 (并查集+欧拉回路 )

    题目链接 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. 规定,所有的边都只能画一次,不能重复画.   输入 第一行只有一个正整数 ...

  6. HDOJ 1878 欧拉回路 nyoj 42一笔画问题

    #include<cstdio> #include<cstring> ]; int find(int x) { if(visited[x]!=x) return find(vi ...

  7. NYOJ 42 一笔画

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...

  8. nyoj 42判断欧拉路径模板题

    #include<stdio.h> #include<string.h> #define N 2100 int degree[N]; int pre[N];//很长时间没写欧拉 ...

  9. nyoj-----42一笔画问题

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...

随机推荐

  1. windows开机启动软件设置

    开机启动软件设置 操作步骤如下: 1.按win+r,输入 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup,点击确定: 2.拖动 ...

  2. Problem05 判断分数等级

    题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. 程序分析:(a>b)?a:b这是条件运算符的基本例子. impo ...

  3. Linux ps命令记录

    ps命令:查看当前系统进程状态 ps -a   显示当前所有进程ps -ax 显示没有控制终端的进程ps -u better   查看用户better的进程ps  aux|less 通过cpu和内存来 ...

  4. thinkphp的初步认识

    框架的意义减少重复劳动便于团队配合增强安全性工作/面试都需要 为什么学习ThinkPHP国内公司用的多框架基本都是MVC架构,学一则通 一.框架的部署 1.1下载tp官网 http://www.thi ...

  5. Django 中orm的第一次举荐

    Django ORM :对象--关系--映射 创建Django准备工作: 1.在数据库创建你需要的数据库 2.在项目models里创建模型(就是python写的类,也可以说是python写的数据库) ...

  6. Murano Weekly Meeting 2016.05.17

    Meeting time: 2016.May.17 1:00~2:00 Chairperson:  Kirill Zaitsev, from Mirantis Meeting summary:   1 ...

  7. DEDECMS v5.7 完美实现导航条下拉二级菜单

    一.引言 好多人都问,织梦的下拉导航怎么做呢?其实很简单!即使你对代码一点也不熟悉,没关系! 按照我的步骤走!记住一步也不能错哦! 二.实现过程 1.首先: 将下面这段代码贴到templets\def ...

  8. 37、解决 HTMLTestRunner 中文显示乱码的问题

    1.在自己的测试脚本中加入下面的代码并保存: # -.- coding:utf-8 -.- import sys reload(sys) sys.setdefaultencoding('utf-8') ...

  9. 【PHP】 hash加密

    之前对密码进行加密是在JS文件里做的,但是不行,改到PHP文件里进行加密比较安全,于是乎…… [原JS加密代码] var password = sha256_digest(pwd); 后来在网上调查方 ...

  10. fillder script使用

    打开fiddler script editor 在fiddler中Rules -> Customize Rules打开 在editor中点击open, 打开CustomRules.js文件, 对 ...