NYOJ 一笔画
# include<iostream>
# include<string>
# include<string.h>
# include<queue>
# include<stdio.h>
# include<math.h>
#include <algorithm>
using namespace std;
#define MAX 4005
int first[MAX],next[MAX],u[MAX],v[MAX],used[MAX],h=,in[MAX];
//int out[MAX];
void AddEdge(int a,int b)
{
u[h] = a;
v[h] = b;
if(h%==)
{
in[a]++;
//out[a]++;
in[b]++;
//out[b]++;
}
next[h] = first[u[h]];
first[u[h]] = h;
h++;
}
int judge(int p)
{
int count = ;
int vertex[];
for(int i=;i<=p;i++)
{
if(in[i] % == )
{
if(count>=)
return -;
vertex[count] = i;
count ++;
}
}
if(count==)
{
return ;
}
else if(count == )
{
return -;
}
else if(count == )
{
return vertex[];
}
else
return -;
}
void dfs(int k) //k是出发顶点
{
//printf("%d\n------------------\n",first[k]);
if(first[k]==-) //不存在以k为顶点的边
return;
else
{
k = first[k];
while(k != -)
{
if(used[k]!=)
{
used[k] = ;
if(k%==)
used[k+] = ;
else
{
used[k-] = ;
}
dfs(v[k]);
}
k = next[k];
}
} }
int main()
{
int m,n,i,j;
cin>>n;
while(n--)
{
int p,q;
cin>>p>>q;
h = ;
for(i=;i<MAX;i++)
{
first[i] = -;
next[i] = -;
used[i] = ;
in[i] = ;
//out[i] = 0;
}
for(i=;i<=q;i++)
{
int a,b;
scanf("%d %d",&a,&b);
AddEdge(a,b);
AddEdge(b,a);
} int k,flag = ;
k = judge(p); //k为起点
if(k==-)
{
printf("No\n");
continue;
}
//printf("%d\n------------------\n",k);
dfs(k); //从起点开始寻找是否存在欧拉路 /******
for(i=1;i<=h;i++)
{
k = first[i];
while(k!=-1)
{
printf("%d %d %d %d %d\n",u[k],v[k],used[k],first[k],next[k]);
k = next[k];
}
}
*******/ for(i=;i<h;i++)
{
if(used[i]!=) //有边尚未访问 故不能一笔画
{
//printf("kk");
flag = ;
break;
}
}
if(flag==) printf("Yes\n");
else printf("No\n");
}
return ;
}
NYOJ 一笔画的更多相关文章
- Nyoj 一笔画问题(图论)
描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. 规定,所有的边都只能画一次,不能重复画. 输入 第一行只有一个正整数N(N&l ...
- nyoj 一笔画问题
一笔画问题 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. 规定,所有的边都只能画一次,不能重复画. 输入 第一行只有一个正整 ...
- NYOJ 一笔画问题 欧拉路
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- nyoj 42-一笔画问题 (欧拉图 && 并查集)
42-一笔画问题 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:10 submit:25 题目描述: zyc从小就比较喜欢玩一些小游戏,其中就包括画 ...
- NYOJ 42 一笔画问题
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- NYOJ 42 一笔画问题 (并查集+欧拉回路 )
题目链接 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. 规定,所有的边都只能画一次,不能重复画. 输入 第一行只有一个正整数 ...
- nyoj 42 一笔画 欧拉通路
http://acm.nyist.net/JudgeOnline/problem.php?pid=42 一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc ...
- NYOJ 42 一笔画
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- NYOJ 题目42 一笔画问题
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
随机推荐
- Python实现C代码统计工具(二)
目录 Python实现C代码统计工具(二) 声明 一. 问题提出 二. 代码实现 三. 效果验证 Python实现C代码统计工具(二) 标签: Python 代码统计 声明 本文将对<Pytho ...
- rabbitmq 强制删除集群相关信息,恢复原始状态
一.前言 同事搭的rabbitmq集群,其中一台一直报下面这种异常: Error: {inconsistent_cluster,"Node rabbit@mq1 thinks it's c ...
- Flask web开发之路九
flask_scripts介绍 项目结构如下: flask_script_demo.py文件: from flask import Flask app = Flask(__name__) @app.r ...
- xml配置
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name=& ...
- Luogu P3919【模板】可持久化数组(可持久化线段树/平衡树)
题面:[模板]可持久化数组(可持久化线段树/平衡树) 不知道说啥,总之我挺喜欢自己打的板子的! #include<cstdio> #include<cstring> #incl ...
- MySQL行(记录)的详细操作一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理
MySQL行(记录)的详细操作 阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: ...
- 关于mysql远程连接
windows环境下简单,这里讲linux环境下的 首先,linux系统有一道防火墙 我用的是ubutun16.04LTS 要用ufw工具(命令)开启3306端口(ufw allow ) (如果安装的 ...
- Away3D引擎学习入门笔记
(1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考), ...
- python-多线程等概念
并发 & 并行 并发:是指系统具有处理多个任务的能力 并行:是指系统具有 同时 处理多个任务的能力 并行 是 并发的一个子集 同步 & 异步 同步:当进程执行到一个I/O(等待外部数 ...
- php性能提升与检测
1.使用xhprof分析器检测性能各种消耗 2.php-fpm中进程池的配置参数查看最大进程数.进程最大处理http请求量.进程时间过多的http请求.每个进程使用的最大内存. 参考地址:https: ...