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 ...
随机推荐
- MySQL利用Navicat导出数据字典
这里算是一个小技巧 利用mysql的information_schema中的COLUMNS表 和navicat中的导出功能实现快速导出数据字典 CREATE TEMPORARYTABLE `COLUM ...
- Rspec中describe和context不同
转自 http://lmws.net/describe-vs-context-in-rspec 学习rspec,不太理解describe和context.google了一下,找到这篇文章,感觉说的有 ...
- Java基础-面板组件
- Java中的代码块
代码块 普通代码块 构造代码块 静态块 同步代码块 普通代码块 为了在方法里面编写过多的变量,防止变量重复,可以用代码块进行隔离. package org.lyk.main; public class ...
- log4j 的rootLogger与rootCategory的区别
一句话 rootLogger是新的使用名称,对应Logger类 rootCategory是旧的使用名称,对应原来的Category类 Logger类是Category类的子类,所以,rootCateg ...
- EasyUI-datagrid-自动合并单元格(转)
1.目标 1.1表格初始化完成后,已经自动合并好需要合并的行: 1.2当点击字段排序后,重新进行合并: 2.实现 2.1 引入插件 /** * author ____′↘夏悸 * create dat ...
- Adobe AIR socket complicating 导致 socket RST
基于socket实现HTTP协议 并发请求AB,A为HTTP请求,B为socket请求. A的请求服务器返回数据很短,包体长度只有35,且客户端收到包头后就断开连接,同时A连接的服务器也断开了连接, ...
- @Valid springMVC bean校验不起作用
@RequestMapping("/add2") public String addStudentValid(@Valid @ModelAttribute("s" ...
- cocos2d 3.0自定义事件答疑解惑
疑惑一:在事件分发中修改订阅者 ,对于这个的理解. 事件的分发是可以嵌套的,cocos2dx使用_inDispatch来保存当前嵌套的深度,当调用第一个dispatchEvent的时候,_inDisp ...
- sqlserver 批量删除存储过程和批量修改存储过程的语句
sqlserver 批量删除存储过程和批量修改存储过程的语句- sqlserver 批量删除存储过程和批量修改存储过程的语句,需要的朋友可以参考下. - 修改: 复制代码 代码如下: declare ...