hdu2444
#include <stdio.h>
#include <string.h>
#define black 1
#define white -1
int already[];
int in[];
int gr[][];
int n;
int v[];
int pf,pe; int dfs(int a,int color){
v[a]=color;
int i;
int sign;
for(i=;i<=n;++i){
if(i==a) continue;
if(gr[a][i]&&v[i]==){
if((sign=dfs(i,-color))==-) return -;
}else if(gr[a][i]&&v[i]==color){
return -;
}
}
return ;
}
int judge(){
int i;
int sign;
memset(v,,sizeof(v));
for(i=;i<=n;++i){
if(==v[i]){
if((sign=dfs(i,black))==-) return -;
}
}
return ;
} int find(int a){
int i;
for(i=;i<=n;++i){
if(v[i]==white&&gr[a][i]&&!in[i]){
in[i]=;
if(already[i]==||find(already[i])){
already[i]=a;
return ;
}
}
}
return ;
}
int main(){
int m;
int i,j;
int res;
while(~scanf("%d%d",&n,&m)){
res=;
memset(gr,,sizeof(gr));
while(m--){
scanf("%d%d",&i,&j);
gr[i][j]=;
gr[j][i]=;
}
if(judge()==-){
printf("No\n");
continue;
} memset(already,,sizeof(already));
for(i=;i<=n;++i){
memset(in,,sizeof(in));
if(v[i]==black)
if(find(i))
res++;
}
printf("%d\n",res);
}
return ;
}
hdu2444的更多相关文章
- HDU2444 The Accomodation of Students —— 二分图最大匹配
题目链接:https://vjudge.net/problem/HDU-2444 The Accomodation of Students Time Limit: 5000/1000 MS (Java ...
- hdu2444 判断二分图+最大匹配
#include<stdio.h> #include<string.h> #include<queue> using namespace std; #define ...
- hdu2444(判二分图+最大匹配)
传送门:The Accomodation of Students 题意:有n个学生,m对相互认识的,问能否分成两队,使得每对中没有相互认识的,如果可以求最大匹配,否则输出No. 分析:判断二分图用染色 ...
- 染色法判断是否是二分图 hdu2444
用染色法判断二分图是这样进行的,随便选择一个点, 1.把它染成黑色,然后将它相邻的点染成白色,然后入队列 2.出队列,与这个点相邻的点染成相反的颜色 根据二分图的特性,相同集合内的点颜色是相同的,即 ...
- hdu2444二分图最大匹配+判断二分图
There are a group of students. Some of them may know each other, while others don't. For example, A ...
- HDU2444 The Accomodation of Students【匈牙利算法】
题意: 有n个学生,有m对人是认识的,每一对认识的人能分到一间房,问能否把n个学生分成两部分,每部分内的学生互不认识,而两部分之间的学生认识.如果可以分成两部分,就算出房间最多需要多少间,否则就输出N ...
- HDU2444 The Accomodation of Students
The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- HDU2444(KB10-B 二分图判定+最大匹配)
The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- hdu2444 The Accomodation of Students(推断二分匹配+最大匹配)
//推断是否为二分图:在无向图G中,假设存在奇数回路,则不是二分图.否则是二分图. //推断回路奇偶性:把相邻两点染成黑白两色.假设相邻两点出现颜色同样则存在奇数回路. 也就是非二分图. # incl ...
随机推荐
- Mac下更改python版本为3.5
mac下默认安装了2.x版本的python , 安装python3.5.1后 , 需要切换一下 在~/.bash_profile中添加如下alias(如果你用的是iterm,那就修改.zshrc) a ...
- maven打成war包之后没有class文件
用maven打了war包之后部署到tomcat下居然无法执行,看了一下原来没有任何编译的.class文件. 查了一下,是自己手欠把source的src改成src.main.java之类的目录了,但是没 ...
- KS-检验(Kolmogorov-Smirnov test) -- 检验数据是否符合某种分布
Kolmogorov-Smirnov是比较一个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验方法.其原假设H0:两个数据分布一致或者数据符合理论分布.D=max| f(x)- g(x)|, ...
- 多窗体之间方法调用 z
C# Code: /// <summary> /// 主窗体接口 /// </summary> public interface IMdiParent{ void Pare ...
- sublime 安装常用插件
1.先要安装Package Control ,ctr+` 打开控制台,复制安装脚本,脚本在https://packagecontrol.io/installation#st3获取. 2.安装插件,ct ...
- 不能使用 snapshot 的解决方式
http://www.mzone.cc/article/654.html 有两种方法可以解决: 1.第一种方法是在项目的pom文件中进行配置,如下: <repositories> < ...
- Python 之字节转换
# coding: utf-8 def bytes2human(n): """ >>> bytes2human(10000) 9K >>&g ...
- Codeforces 119C DP
题意: 有n天,m门课和常数k; 每天上一门课,每门课程有两个属性,最少作业量a,最多作业量b,和难度c. 1<=a<=b<=1e16 c<=100 1<=n<=m ...
- nyoj 105 九的余数
点击打开链接 九的余数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数. 输入 ...
- nyoj 70 阶乘因式分解(二)
点击打开链接 阶乘因式分解(二) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解 ...