uva-10004-俩色图验证
题意:
在1976年,四色猜想被一个计算机助手提出,这个理论表示对任意一个地图的上色都只需要四种
颜色,地图内每一个区块和相邻的区块颜色都不相同.
你现在被要求解决一个相似但相对简单的问题.给你任意一个连通的图你必须计算出这个图
是否能够被俩种颜色涂上颜色.意思就是如果一个结点被涂上颜色
(从一个只有俩种颜色的调色板中选取一个颜色),那么相邻的俩个结点都不能有相同的颜色.
为了使问题更加简单,我们保证一下条件.
1:结点不存在自己到自己的边(不存在结点1有条边到结点1)
2:是一个无向图,如果结点a有条边到结点b,可以假设结点b也有条路到结点a
3:是一个强联通图,意思就任意一个结点都有一条路到其他结点.
输入
输入由几组测试用例组成,每一组测试开始的第一行包含一个数字n(1<n<200),表示包含有n个结点.
第二行包含边的数目L,随后L行,每一行包含俩个数字,表示这俩个结点之间有一条边相连接,
图的一个结点使用a标识(0<=a<n),n=0表示输入结束,不用处理.
输出
看输出用例
AC时间:0ms
#include<stdio.h>
#include<iostream>
#include<queue>
#include<memory.h>
using namespace std; const int MAX = ;
void dfs(int r, int *ok, int n, int map[MAX][MAX], int cc, int vis[])
{
if(vis[r] == -)
{
vis[r] = cc;
for(int i = ; i < n; i++)
{
if(map[r][i] !=-)
{
map[r][i] = -;
dfs(i,ok,n,map,(cc+)%,vis);
}
}
}
else if(vis[r] !=cc)
{
*ok = ;
}
}
int main()
{
freopen("d:\\1.txt", "r", stdin);
int n;
string yes = "BICOLORABLE.";
string no = "NOT BICOLORABLE.";
while (cin >> n)
{
if(n == )
{
return ;
}
int l;
cin >> l;
int map[MAX][MAX];
int vis[MAX];
memset(vis, -, sizeof(vis));
memset(map, -, sizeof(map));
int s, t;
for(int i = ; i < l; i++)
{
cin >> s >> t;
map[s][t] = ;
map[t][s] = ;
}
int ok = ;
//深搜
dfs(s, &ok, n, map, , vis);
if(ok)
cout << yes << endl;
else
cout << no << endl;
}
return ;
}
uva-10004-俩色图验证的更多相关文章
- UVA 10004 Bicoloring
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=12&pa ...
- UVa 10004:Bicoloring
这道题要我们判断所给图是否可以用两种颜色进行染色,即"二染色“.已知所给图一定是强连通图. 分析之: 若图中无回路,则该图是一棵树,一定可以二染色. 若图中有回路,但回路有偶数个节点,仍然可 ...
- uva 10004 Bicoloring(dfs二分染色,和hdu 4751代码差不多)
Description In the ``Four Color Map Theorem" was proven with the assistance of a computer. This ...
- Bicoloring UVA - 10004 二分图判断
\(\color{#0066ff}{题目描述}\) 多组数据,n=0结束,每次一个n,m,之后是边,问你是不是二分图 \(\color{#0066ff}{输入样例}\) 3 3 0 1 1 2 2 0 ...
- UVA - 10004 Bicoloring(判断二分图——交叉染色法 / 带权并查集)
d.给定一个图,判断是不是二分图. s.可以交叉染色,就是二分图:否则,不是. 另外,此题中的图是强连通图,即任意两点可达,从而dfs方法从一个点出发就能遍历整个图了. 如果不能保证从一个点出发可以遍 ...
- UVA 10004 Bicoloring(DFS染色)
题意: 给N个点构成的无环无向图,并且保证所有点对都是连通的. 给每个点染色,要么染成黑要么染成白.问是否存在染色方案使得所有有边相连的点对颜色一定不一样. 是输出 BICOLORABLE 否则输出 ...
- uva 交叉染色法10004
鉴于网上讲交叉染色的资料比较少,于是我把我自己的心得与方法贴出来,方便与大家共同进步. 二分图: 百度百科传送门 wiki百科传送门 判断一个图是否为二分图可以用交叉染色的方法来判断,可以用BFS,也 ...
- Android 代理服务器为全网提供代理
Android 代理服务器为全网提供代理 背景:学校WiFI过滤较严,故学生很少有可以上网账号的.而学校又分为俩层验证,第一层可以注册并且拥有访问校内网的权限,第二层为校内密码验证机(非服务器)进行用 ...
- 测试开发系列之Python开发mock接口(三)
于进入主题了,前面的准备工作都已经做好了,下面就开始写逻辑的代码了,代码我已经写好了,每行都加了注释,不明白的可以留言. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 ...
随机推荐
- php-fpm配置及操作
启动与停止 启动 /usr/local/php/sbin/php-fpm 停止 pkill php-fpm
- 关于凑数问题的dfs
https://www.nowcoder.com/acm/contest/42/F 首先由于是单一解问题,所以使用返回值类型为bool的dfs 然后为了保证dfs的效率性,应该把加数dfs放在前面,不 ...
- 使用C#和MSMQ开发消息处理程序
简介 MSMQ(微软消息队列)是Windows操作系统中消息应用程序的基础,是用于创建分布式.松散连接的消息通讯应用程序的开发工具.消息队列和电子邮件有着很多相似处,他们都包含多个属性,用于保存消息, ...
- net core 2.0学习笔记(一):开发运行环境搭建 (转)
期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...
- C#读取Mysql blob字段 (转帖)
http://blog.csdn.net/config_man/article/details/6123191 开发环境:Windows XP Professional SP3.VS2008.Winf ...
- module.exports用法
module.exports 对象是由模块系统创建的.在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴漏声明内容,module.exports提供了暴漏接口的方法. 1.返回一个 ...
- Hadoop集群环境搭建步骤说明
Hadoop集群环境搭建是很多学习hadoop学习者或者是使用者都必然要面对的一个问题,网上关于hadoop集群环境搭建的博文教程也蛮多的.对于玩hadoop的高手来说肯定没有什么问题,甚至可以说事“ ...
- [C++ Primer] : 第16章: 模板与泛型编程
面向对象编程(OOP)和泛型编程都能处理在编写程序时不知道类型的情况, 不同之处在于: OOP能处理类型在程序运行之前都未知的情况, 而在泛型编程中, 在编译时就能获知类型了. 函数模板 模板是C++ ...
- 使用Jquery实现Win8开始菜单效果的站点导航
前言: 本人是个Metro控,自我感觉到处都充斥着Metro的元素,个人认为这种风格强调表现以及内容,以简洁著称,不过也不是大部分都喜欢,也有一些人和你讨厌这种风格~不过本人非常喜欢这种风格,看我博客 ...
- maven教程基础
一.Maven介绍 我们在开发项目的过程中,会使用一些开源框架.第三方的工具等等,这些都是以jar包的方式被项目所引用,并且有些jar包还会依赖其他的jar包,我们同样需要添加到项目中,所有这些相关的 ...