题意:

给N个点构成的无环无向图,并且保证所有点对都是连通的。

给每个点染色,要么染成黑要么染成白。问是否存在染色方案使得所有有边相连的点对颜色一定不一样。

是输出 BICOLORABLE 否则输出 NOT BICOLORABLE

思路:

从某点开始,直接进行染色,如果矛盾,返回false。

代码:

int n,l;
vector<int> graph[205];
int color[205]; bool dfs(int u,int fa){
if(color[fa]==0)
color[u]=1;
else
color[u]=0;
int L=graph[u].size();
rep(i,0,L-1){
int v=graph[u][i];
if(v!=fa){
if(color[v]==-1)
dfs(v,u);
else
if(color[v]+color[u]!=1) return false;
}
}
return true;
} int main(){
int start;
while(scanf("%d",&n)!=EOF,n){
scanf("%d",&l);
rep(i,0,n-1) graph[i].clear();
mem(color,-1); color[n]=0;
while(l--){
int u,v;
scanf("%d%d",&u,&v); start=u;
graph[u].push_back(v);
graph[v].push_back(u);
}
bool yes=dfs(start,n);
if(yes)
puts("BICOLORABLE.");
else
puts("NOT BICOLORABLE.");
}
}

最新文章

  1. SharePoint2016安装的过程的”Microsoft.SharePoint.Upgrade.SPUpgradeException”错误解决方法
  2. 【饿了么】招聘Java开发工程师、架构师
  3. 自定义加载loading view动画组件的使用。
  4. LeetCode 118 Pascal&#39;s Triangle
  5. 1. Two Sum I &amp; II &amp; III
  6. 几种I/O模型功能和性能对比
  7. 关于a标签和submit标签
  8. 使用函数库(JAVA API)
  9. PHP 表单 - 验证邮件和URL
  10. java的math常用方法
  11. L1范式和L2范式的区别
  12. node-http-proxy修改响应结果
  13. box-shadow讲解1
  14. SVNKIT操作SVN版本库的完整例子
  15. SQL注入(二)
  16. Redis学习笔记(一)关于在windows64位环境下的安装学习使用
  17. 作业一 :关于C语言
  18. 嵌入式开发平台迅为iTOP-4412开发板-ssh常见问题以及解决方法
  19. 查看Sql Server 数据库的内存使用情况
  20. linux下的mysql

热门文章

  1. 深入学习PHP中的JSON相关函数
  2. java基础之AQS
  3. csv或excel的utf-8乱码问题
  4. spring入门2-aop和集成测试
  5. vue.js 配置axios 用来ajax请求数据
  6. python学习笔记(八)-模块
  7. windows 10玩mysql 8
  8. SpringBoot之网站的登陆注册逻辑
  9. 牛逼的磁盘检查工具duf
  10. Python简单爬取图书信息及入库