hihoCoder #1121 : 二分图一•二分图判定
2018-03-20 17:16
316 查看
题意:裸。
思路:如何判断一个图是不是二分图,那就是从当前点开始出发看这个点有没有染色,如果没有染色就对其染色,如果染过色了就判断当前点的颜色和我们要染的颜色是否相同
代码:#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
vector<int>V[10000+10];
int vis[10000+10],flag;
void dfs(int n,int c)
{
if(flag) return ;
vis
= c;
for(int i = 0 ; i < V
.size() ; i++)
{
int v = V
[i];
if(vis[v] == -1)
{
dfs(v,!c);
}
else
{
//int t = !c;
if(vis[v] != (!c))
{
flag = 1;
return ;
}
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
flag = 0;
for(int i = 0 ; i < 10000+10; i ++)//没加就会wa
{
V[i].clear();
}
int n,m,a,b;
scanf("%d%d",&n,&m);
memset(vis,-1,sizeof(vis));
for(int i = 0 ; i < m ; i++)
{
cin>>a>>b;
V[a].push_back(b);
V[b].push_back(a);
}
for(int i = 1 ; i <= n ;i++)
{
if(vis[i] == -1)
{
dfs(i,0);
}
}
if(flag) puts("Wrong");
else puts("Correct");
}
}
思路:如何判断一个图是不是二分图,那就是从当前点开始出发看这个点有没有染色,如果没有染色就对其染色,如果染过色了就判断当前点的颜色和我们要染的颜色是否相同
代码:#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
vector<int>V[10000+10];
int vis[10000+10],flag;
void dfs(int n,int c)
{
if(flag) return ;
vis
= c;
for(int i = 0 ; i < V
.size() ; i++)
{
int v = V
[i];
if(vis[v] == -1)
{
dfs(v,!c);
}
else
{
//int t = !c;
if(vis[v] != (!c))
{
flag = 1;
return ;
}
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
flag = 0;
for(int i = 0 ; i < 10000+10; i ++)//没加就会wa
{
V[i].clear();
}
int n,m,a,b;
scanf("%d%d",&n,&m);
memset(vis,-1,sizeof(vis));
for(int i = 0 ; i < m ; i++)
{
cin>>a>>b;
V[a].push_back(b);
V[b].push_back(a);
}
for(int i = 1 ; i <= n ;i++)
{
if(vis[i] == -1)
{
dfs(i,0);
}
}
if(flag) puts("Wrong");
else puts("Correct");
}
}
相关文章推荐
- hihocoder #1121 : 二分图一•二分图判定 并不能AC 孤立点问题?
- hihocoder #1121 : 二分图一•二分图判定
- hihoCoder#1121 二分图一•二分图判定
- 1121 : 二分图一•二分图判定
- #1121 : 二分图一•二分图判定 (HIHOCoder +二分图的判定)
- hihoCoder 1121 二分图一•二分图判定
- HihoCoder 1121 二分图一•二分图判定
- [HihoCoder]#1121 : 二分图一•二分图判定
- hihoCoder #1121 : 二分图一•二分图判定
- hihocoder 1121 : 二分图一•二分图判定
- #1121 : 二分图一•二分图判定
- HIHO #1121 : 二分图一•二分图判定
- #1121 : 二分图一•二分图判定
- hihoCoder#1121 : 二分图一•二分图判定
- 二分图一•二分图判定(尚未解决)
- Hihocoder #1121 二分图一•二分图判定( bfs或者dfs搜索实现 搜索的过程中进行 节点标记 *【模板】)
- hihoCoder - 1121 - 二分图判定
- 二分图一•二分图判定+异或运算
- hihoCoder 1121 二分图判定
- hihocoder 第三十三周 二分图一•二分图判定