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从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
随机推荐
- Git 学习笔记--删除错误提交的commit
如果不小心把错误的commit给commit了,可以对其进行撤销 1.使用git log查看commit日志,找到错误提交前一版本commit的哈希值; 2.使用git reset --hard co ...
- iOS - WKWebView加载不受信任的https (因用到IP地址加端口号去请求数据)
1.描述:因公司域名临时出现问题,所以项目中引用到了IP地址加端口号去请求数据,因而造成在wkwebView中某些网址打不开,查看错误是因为服务器证书无效,实际就是不受信任; 2.解决办法:在plis ...
- C++/MFC-线程优先级
转载: https://blog.csdn.net/qwdpoiguw/article/details/72830426 一.线程优先级(Thread priority ) 简单的说就是(线程)的优先 ...
- android基础---->service的生命周期
服务是一个应用程序组件代表应用程序执行一个长时间操作的行为,虽然不与用户交互或供应功能供其它应用程序使用.它和其他的应用对象一样,在他的宿主进程的主线程中运行.今天我们开始android中普通serv ...
- 关于rem适配的3种常用封装
在之前写了一篇关于rem适配的文章,但是没有给出具体的封装,那么今天这里给出常用的三种方法,分享出来供大家参考学习,下面话不多说了,来随着小编一起学习学习吧 一.rem1.js 第一种方法考虑了m端屏 ...
- 淘宝 NPM 镜像使用
前言 因为众所周知的原因,使用node,官方NPM仓库安装依赖包是个看人品的事情,不过有万能的淘宝,所以需要部分调整就可以避免这些原因.(以下内容osx, centos下测试通过) 淘宝镜像基本使用 ...
- python搭建简单http文件服务器
import SimpleHTTPServer import SocketServer PORT = 8000 Handler = SimpleHTTPServer.SimpleHTTPRequest ...
- 火狐浏览器报错“support.mozilla.org
火狐浏览器有时候再打开新网页会报此错“support.mozilla.org 有时候火狐浏览器会出现如下状况 解决方法 在地址栏键入”about:config” 点击“我了解此风险” 在下方任意位置右 ...
- 修改Jenkins的主目录步骤
在使用Jenkins做持续集成过程中,在构建很多次后发现有时在构建的时候系统提示磁盘空间不足,此时检查发现Jenkins的主目录挂载区放在了服务器根目录下,占用空间较大,此时除了对服务器的磁盘进行扩容 ...
- POJ-1143(状态压缩)
Number Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3432 Accepted: 1399 Descripti ...