hdu4715
题解:
二分图判断
建立原图的补图
判断是否是二分图
代码:
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int an[N],ans,a[N][N],n,x;
void dfs(int x,int y)
{
if (ans)return;
an[x]=y;
for (int i=;i<=n;i++)
if ((!a[x][i]||!a[i][x])&&i!=x)
{
if (an[i]&&-y!=an[i]){ans=;return;}
if (!an[i])dfs(i,-y);
}
}
int main()
{
while (~scanf("%d",&n))
{
ans=;
memset(an,,sizeof an);
memset(a,,sizeof a);
for (int i=;i<=n;i++)
for (scanf("%d",&x);x;scanf("%d",&x))a[i][x]=;
for (int i=;i<=n;i++)
if (!an[i])dfs(i,);
if (ans)puts("NO");else puts("YES");
}
}
hdu4715的更多相关文章
随机推荐
- JAVA三框架工作原理是什么?
一.struts的工作原理: 1.初始化,读取struts-config.xml.web.xml等配置文件(所有配置文件的初始化) 2.发送HTTP请求,客户端发送以.do结尾的请求 3.填充Form ...
- 002-docker安装-mac上安装docker,17.06在CentOS7 64位机器上安装
一.mac上安装docker 1.下载 通过这个链接下载:https://download.docker.com/mac/stable/Docker.dmg 2.安装 将 Moby 的鲸鱼图标拖拽到 ...
- POJ1276:Cash Machine(多重背包)
题目:http://poj.org/problem?id=1276 多重背包模板题,没什么好说的,但是必须利用二进制的思想来求,否则会超时,二进制的思想在之前的博客了有介绍,在这里就不多说了. #in ...
- day2 笔记
while 条件: # 循环体 # 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环体不执行 循环中止语句 如果在循环的过程中,因为某 ...
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(2): 关于子表达式
Delphi 正则表达式之TPerlRegEx 类的属性与方法(2): 关于子表达式 // MatchedExpression 与 SubExpressions[0] var reg: TPerl ...
- spring和spirngmvc整合
<!-- 需要进行 Spring 整合 SpringMVC 吗 ? 还是否需要再加入 Spring 的 IOC 容器 ? 是否需要再 web.xml 文件中配置启动 Spring IOC 容器的 ...
- Javascript中call()和apply()的用法 ----2
前言 call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.call 和 apply二者的作用完全一样,只是接受 ...
- Wireshark(一):Wireshark基本用法
转载:https://community.emc.com/message/818739#818739 按照国际惯例,从最基本的说起. 抓取报文: 下载和安装好Wireshark之后,启动Wiresha ...
- Android 6.0中在/dev下添加新设备驱动下Selinux相关设置【转】
本文转载自:https://blog.csdn.net/fantasy_wxe/article/details/52013922 错误1: 07-23 13:06:57.617 117 117 ...
- MongoDB快速入门(十二) -- 索引
MongoDB 索引 索引支持的解析度的查询效率.如果没有索引,MongoDB必须扫描每一个文档的集合,要选择那些文档相匹配的查询语句.这种扫描的效率非常低,会要求 mongod 做大数据量的处理. ...