\(\color{#0066ff}{题目描述}\)

多组数据,n=0结束,每次一个n,m,之后是边,问你是不是二分图

\(\color{#0066ff}{输入样例}\)

3
3
0 1
1 2
2 0
3
2
0 1
1 2
9
8
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0

\(\color{#0066ff}{输出样例}\)

NOT BICOLORABLE.
BICOLORABLE.
BICOLORABLE.

\(\color{#0066ff}{题解}\)

二分图染色法

看能否用两种颜色染色,使相邻两点颜色不同

#include<cstdio>
#include<queue>
#include<vector>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cctype>
#include<cmath>
#define _ 0
#define LL long long
#define Space putchar(' ')
#define Enter putchar('\n')
#define fuu(x,y,z) for(int x=(y),x##end=z;x<=x##end;x++)
#define fu(x,y,z) for(int x=(y),x##end=z;x<x##end;x++)
#define fdd(x,y,z) for(int x=(y),x##end=z;x>=x##end;x--)
#define fd(x,y,z) for(int x=(y),x##end=z;x>x##end;x--)
#define mem(x,y) memset(x,y,sizeof(x))
#ifndef olinr
inline char getc()
{
static char buf[100001],*p1=buf,*p2=buf;
return (p1==p2)&&(p2=(p1=buf)+fread(buf,1,100001,stdin),p1==p2)? EOF:*p1++;
}
#else
#define getc() getchar()
#endif
template<typename T>inline void in(T &x)
{
int f=1; char ch; x=0;
while(!isdigit(ch=getc()))(ch=='-')&&(f=-f);
while(isdigit(ch)) x=x*10+(ch^48),ch=getc();
x*=f;
}
int T;
struct node
{
int to;
node *nxt;
};
typedef node* nod;
nod s[105050];
nod head[555];
int col[555];
int n,m,top;
inline void add(int from,int to)
{
static node st[105050],*tail=st;
nod t=top? s[top--]:tail++;
t->to=to;
t->nxt=head[from];
head[from]=t;
}
inline bool dfs(int x,int c)
{
col[x]=c;
for(nod i=head[x];i;i=i->nxt)
{
if(~col[i->to])
{
if(col[i->to]!=(c^1)) return false;
}
else return dfs(i->to,c^1);
}
return true;
}
int main()
{
while(1)
{
in(n);
if(!n) break;
in(m);
fu(i,0,n) head[i]=NULL,col[i]=-1;
int x,y;
fuu(i,1,m) in(x),in(y),add(x,y),add(y,x);
printf(dfs(1,0)? "BICOLORABLE.":"NOT BICOLORABLE."),Enter;
fu(i,0,n) for(nod j=head[i];j;j=j->nxt) s[++top]=j;
}
return ~~(0^_^0);
}

Bicoloring UVA - 10004 二分图判断的更多相关文章

  1. UVA - 10004 Bicoloring(判断二分图——交叉染色法 / 带权并查集)

    d.给定一个图,判断是不是二分图. s.可以交叉染色,就是二分图:否则,不是. 另外,此题中的图是强连通图,即任意两点可达,从而dfs方法从一个点出发就能遍历整个图了. 如果不能保证从一个点出发可以遍 ...

  2. UVA 10004 Bicoloring

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=12&pa ...

  3. UVa 10004:Bicoloring

    这道题要我们判断所给图是否可以用两种颜色进行染色,即"二染色“.已知所给图一定是强连通图. 分析之: 若图中无回路,则该图是一棵树,一定可以二染色. 若图中有回路,但回路有偶数个节点,仍然可 ...

  4. uva 10004 Bicoloring(dfs二分染色,和hdu 4751代码差不多)

    Description In the ``Four Color Map Theorem" was proven with the assistance of a computer. This ...

  5. UVA 10004 Bicoloring(DFS染色)

    题意: 给N个点构成的无环无向图,并且保证所有点对都是连通的. 给每个点染色,要么染成黑要么染成白.问是否存在染色方案使得所有有边相连的点对颜色一定不一样. 是输出 BICOLORABLE 否则输出 ...

  6. hdu 4751 2013南京赛区网络赛 二分图判断 **

    和以前做过的一个二分图颇为相似,以前的是互相不认识的放在一组,这个是互相认识的,本质上是相同的 是 hdu 2444 #include<cstdio> #include<iostre ...

  7. hdu 2444 二分图判断与最大匹配

    题意:有n个学生,有m对人是认识的,每一对认识的人能分到一间房,问能否把n个学生分成两部分,每部分内的学生互不认识,而两部分之间的学生认识.如果可以分成两部分,就算出房间最多需要多少间,否则就输出No ...

  8. hdu 2444 The Accomodation of Students(最大匹配 + 二分图判断)

    http://acm.hdu.edu.cn/showproblem.php?pid=2444 The Accomodation of Students Time Limit:1000MS     Me ...

  9. UVA1627-Team them up!(二分图判断+动态规划)

    Problem UVA1627-Team them up! Total Submissions:1228  Solved:139 Time Limit: 3000 mSec Problem Descr ...

随机推荐

  1. 批量删除osd的shell脚本

    cluster环境: # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) # ceph -v ceph version 12. ...

  2. mjpg-streamer移植

    本文的copyright归yuweixian4230@163.com 所有,使用GPL发布,可以自由拷贝,转载.但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途. 作者:yuweix ...

  3. c++ 图解快速排序算法

    第一.算法描述 快速排序由C. A. R. Hoare在1962年提出,该算法是目前实践中使用最频繁,实用高效的最好排序算法, 快速排序算法是采用分治思想的算法,算法分三个步骤 从数组中抽出一个元素作 ...

  4. jsp与struts的区别

    JSP通常用于MVC的View层,Struts1,Struts2用于MVC的Control层. JSP用来展示页面信息,使用servlet API封装而成,代替servlet中response向客户端 ...

  5. 关于更新pip的心得

    如果pip install --upgrade pip 删除了自己,但是无法安装新的自己. 那么下载最新的pip,解压 1.在命令窗口输入  python(前提条件已经在系统路径)  setup.py ...

  6. 监控和安全运维 1.3 cacti增加客户端监控

    二. 安装客户端(增加一个linux服务器) 1.在客户端上 安装snmp yum install -y net-snmp 2. 修改snmpd.conf vim /etc/snmp/snmpd.co ...

  7. (修改)oracle11g监听多台主机配置,用pl/sql连接操作多个数据库详解

    很多朋友在开发项目中并不是每个人用一个数据库,而是有单独的一台主机作为开发的数据库服务器,这样,就需要我们的开发人员去连接它. 首先是进入oracle的 Net  Mananger:

  8. [Python Study Notes]csv文件操作

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  9. 使用Post进行Http通信

    --------------siwuxie095                             有道翻译官网:http://fanyi.youdao.com/     找到官网页面下方的 有 ...

  10. [gist]Android SHA-1

    参考:http://stackoverflow.com/questions/5980658/how-to-sha1-hash-a-string-in-android 代码: