Uva 10004(二分图的判定)

这题其实很简单的说,第一次用邻接表来存图= =

首先图的储存结构是结构体+head数组。。。其实head数组保存的

struct node
{int v;int next;
}V[200*200];


 假设现在有u节点,v表示的是和他邻接的点,next保存的是v对应的编号,head数组保存的是链表的头节点编号。

比如有

1 2

1 3

1 4的点边关系那么V[head[1]].v=4;V[head[2]].v=1,V[head[3]].v=1;

现在讲讲如何判断图是不是二分图,首先对任意没染色的点进行染色,之后判断与其相邻的点若是没染色则染上与其相邻的顶点不同的颜色,若是染过色且与相邻的顶点颜色相同则不是二分图==

判断的过程用dfs来实现

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{int v;int next;
}V[200*200];
int tol; 
int head[200];
int col[200];
void init()
{int tol=0;memset(head,-1,sizeof(head));
}
void add(int u,int v)
{V[tol].v=v;V[tol].next=head[u];head[u]=tol++;
}
bool bldfs(int u,int co)
{int i,v;col[u]=co;for(i=head[u];i!=-1;i=V[i].next){v=V[i].v;if(col[v]==co)return false;if(col[v]==-1&&!bldfs(v,co^1))return false;}return true;
}
int main()
{int n,m;while(scanf("%d",&n)!=EOF&&n){init();int u,v;scanf("%d",&m);for(int i=0;i<m;i++){scanf("%d %d",&u,&v);add(u,v);add(v,u);}memset(col,-1,sizeof(col));int flag=0;for(int i=0;i<n;i++){if(col[i]==-1)if(!bldfs(i,0)){flag=1;break;}}if(flag==1)printf("NOT BICOLORABLE.\n");elseprintf("BICOLORABLE.\n");}return 0;
}

 

转载于:https://www.cnblogs.com/NaCl/p/4796279.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django配置在MySQL_怎么在Django中安装与配置mysql

怎么在Django中安装与配置mysql发布时间&#xff1a;2021-02-26 17:42:11来源&#xff1a;亿速云阅读&#xff1a;57作者&#xff1a;Leah本篇文章为大家展示了怎么在Django中安装与配置mysql&#xff0c;内容简明扼要并且容易理解&#xff0c;绝对能使你眼前一亮&#xff0c;通…

php 返回数组元素函数_php array_values 返回数组的所有值详解及实例

php array_valuesphp array_values 函数用于返回数组中所有的值&#xff0c;注意该函数将为新数组建立数组索引&#xff0c;原来的文字索引将不存在。本文章向大家讲解array_values函数的基本语法及使用实例。array_values 返回数组中所有的值基本语法&#xff1a;array array_…

0909 粗浅的认识编译原理

经过相关网页的浏览&#xff0c;也看到了各大网站中各方牛人的回答&#xff0c;我似乎对编译原理有了自己一点粗浅的认识。首先&#xff0c;编译原理及技术从根本上来讲就是对算法问题进行求解&#xff0c;这个问题十分复杂&#xff0c;更不用说其解决算法。 而本学期开的算法分…

PHP点歌插件,斗鱼弹幕点歌插件_小葫芦社区_小葫芦插件交流 - Powered by Discuz!

更新版本&#xff1a;3.3.7更新日期&#xff1a;2017-04-25更新日志&#xff1a;1. 修复 部分斗鱼房间无法连接弹幕的问题(主要是参与主播带你嗨购活动的主播)2. 修复 其他已知问题更新版本&#xff1a;3.2.16更新日期&#xff1a;2017-03-01更新日志&#xff1a;1. 修复 斗鱼弹…

Java字符串找出4个字节长度的字符

不解释&#xff0c;直接上代码&#xff1a; 由于Iteye代码贴四个字节的&#xff35;&#xff34;&#xff26;&#xff0d;&#xff18;字符出错&#xff0c;特能图的方式发布几个特殊字符&#xff1a; Java代码 public class Byte4Check { public static void main…

java编写sql语句,java实现简单的给sql语句赋值的示例

代码本身很简单。拼接sql的时候&#xff1f;不好数&#xff0c;简单的用来赋值。/*** TODO 循环赋值,缺少的类型可随时添加* author Lucius* param pt* param list* throws SQLException*/public static void setParam(PreparedStatement pt, List list) throws SQLException{f…

div 左右并排,使用CSS如何让两个div并排显示

用CSS如何让两个DIV盒子并排体现呢&#xff1f;各人知道默认情况下DIV是独占一排的&#xff0c;DIV不设置任何CSS格局&#xff0c;这个DIV盒子都邑独有一行踊跃换行。运用CSS让两个DIV并排闪现&#xff0c;排成一排显示思空见贯方式有两种&#xff1a;1、运用display:inline2、…

ASP.NET MVC5 与EF6学习系列

最近学习使用MVC5和EF6&#xff0c;博客园搜索了一番&#xff0c;写下这篇文章记录&#xff0c;以便学习使用。 一、ASP.NET MVC5 网站开发 洞庭夕照写的博客系列 ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP.NET MVC5 网站开发实践(一) -…

耦合度和聚合度

简单地说&#xff0c;对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高&#xff0c;维护成本越高。因此对象的设计应使类和构件之间的耦合最小. 耦合性是程序结构中各个模块之间相互关联的度量.它取…

php 获取 省份缩写,php获取客户端IP,国家,省份,地区,ISP等信息

php获取客户端IP,国家,省份,地区,ISP等信息&#xff0c;首先获取获取客户端的公网ip&#xff0c;开始本地搭建的环境&#xff0c;本地访问获取到的是127.0.0.1&#xff0c;然后用138的接口可以实现curl模拟客户端访问 http://city.ip138.com/ip2city.asp 可看到真实客户端的ip。…

JStorm-介绍

1.概述 JStorm 是一个类似于 Hadoop 的MapReduce的计算系统&#xff0c;它是由Alibaba开源的实时计算模型&#xff0c;它使用Java重写了原生的Storm模型&#xff08;Clojure和Java混合编写的&#xff09;&#xff0c;并且再原来的基础上做了许多改进。用户只需按照指定的接口实…

水印鲁棒性的分析matlab程序,图像数字水印+matlab程序

第三章 图像数字水印的方案3.1 图像数字水印的技术方案在数据库中存储在国际互联网上传输的水印图像一般会被压缩&#xff0c;有时达到很高的压缩比。因此&#xff0c;数字水印算法所面临的第一个考验就是压缩。JPEG和EZW(Embedded Zero-Tree Wavelet)压缩是最常见的两种压缩方…

又一个绝对棒的对话框插件fancybox v1.3.4

http://www.jsfoot.com/jquery/demo/2011-07-30/fancybox/index.html jquery插件&#xff1a;fancybox Fancybox的特点如下&#xff1a; 可以支持图片、html文本、flash动画、iframe以及ajax的支持可以自定义播放器的CSS样式可以以组的形式进行播放如果将鼠标滚动插件&#xff…

php this validate,php扩展ZF——Validate扩展

php扩展ZF——Validate扩展更新时间&#xff1a;2008年01月10日 20:27:49 作者&#xff1a;php扩展ZF——Validate扩展之前写了一片文章关于如何在ZF0.6版本下扩展ZF的。这篇应该说是类似的文章&#xff0c;但环境换成ZF1.0RC1版本了。在开始ZF扩展之前&#xff0c;推荐先看看…

大数据资源收集

数据可视化 工具&#xff1a; https://github.com/showcases/data-visualization https://github.com/mbostock/d3 https://github.com/ecomfe/echarts http://www.bootstrapstage.com/admin-lte/ 研究组&#xff1a; http://idl.cs.washington.edu/ 转载于:https://www.cnblog…

php 中间表示语言,[转载]php 底层 探究之php编译过程及中间语言 opcode

Opcode是一种PHP脚本编译后的中间语言&#xff0c;就像Java的ByteCode,或者.NET的MSL&#xff0c;举个例子&#xff0c;比如你写下了如下的PHP代码&#xff1a;echo"Hello World";$a 1 1;echo$a;?>PHP执行这段代码会经过如下4个步骤(确切的来说&#xff0c;应该…

浅谈数据结构-选择排序(简单、堆排序)

选择排序&#xff1a;每趟从待排序的记录中选出关键字最小的记录&#xff0c;顺序放在已排序的记录序列末尾&#xff0c;直到全部排序结束为止。 选择排序正如定义所讲&#xff0c;在数组查询出最小值&#xff0c;然后放在此次循环开始位置&#xff08;前一次循环已经获取比它更…

php 去掉多维数组的键名,去除多维数组的最外层key 保留值

如果你是要将JSON转成PHP数组&#xff0c;方法如下首先&#xff0c;你这个数据格式是JSON的&#xff0c;要先转成PHP数组。$a json_decode($a, TRUE);json_decode第二个参数为TRUE表示保留键名&#xff0c;否则JSON转PHP数组之后&#xff0c;PHP数组的键名会重新排序。然后将你…

安装php7的mysql扩展,php7安装mysql扩展的方法是什么

php7安装mysql扩展的方法&#xff1a;1、下载mysql扩展并解压&#xff1b;2、使用phpize工具初始化并进行configure&#xff1b;3、执行【make && make install】命令&#xff1b;4、编辑php.ini文件&#xff1b;5、重启服务。本文环境&#xff1a;windows10系统、php7…

什么是简单的分析SQL注入漏洞

如今非常多人在入侵的过程中基本都是通过SQL注入来完毕的&#xff0c;可是有多少人知道为什么会有这种注入漏洞呢&#xff1f;有的会随口说着对于字符的过滤不严造成的。可是事实是这样吗&#xff1f;我们学这些。不仅要知其然。更要知其所以然&#xff01;理论联系实际&#x…