第一次用vector解得题。值得纪念,这道题是二染色问题,我用bfs解得。就是染色,推断,计数问题,其

实挺简单的,就是得判一下特殊情况,当n<2的时候就不能有解,由于题目要求每一个组至少有一个人。当没有不认识的

人的时候就是一个组是n-1,还有一个组人数为1

上代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;
int visit[100005];
int n,m,flag,ans1,ans2;
vector<int>v[100005];
int bfs(int x)
{
queue<int>q;
q.push(x);
visit[x] = 1;
while(!q.empty())
{
int y = q.front();
q.pop();
if(visit[y] == 1)
ans1++;
else
ans2++;
for(int i=0; i<v[y].size(); i++)
{
if(visit[v[y][i]]==-1)
{
visit[v[y][i]] = !visit[y];
q.push(v[y][i]);
}
else
{
if(visit[v[y][i]]==visit[y])
{
return 0;
}
}
}
}
return 1;
}
void solve()
{
int Max = 0;
memset(visit,-1,sizeof(visit));
for(int i=1; i<=n; i++)
{
ans1 = ans2 =0;
//printf("size = %d i = %d\n",v[i].size(),i);
if(v[i].size()==0)
continue;
if(visit[i]==-1&&!bfs(i))
{
flag = 1;
break;
}
Max += min(ans1,ans2); //printf("ans1 = %d ans2 = %d\n",ans1,ans2);
}
if(flag)
printf("Poor wyh\n");
else
printf("%d %d\n",n - Max,Max);
return ; }
int main()
{
int T,c,i,j,a,b;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
for(i=1; i<=n; i++)
v[i].clear();
for(i=1; i<=m; i++)
{
scanf("%d%d",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
if(n < 2)
{
puts("Poor wyh");
continue;
}
if(m == 0)
{
printf("%d 1\n",n-1);
continue;
}
flag = 0;
solve();
}
return 0;
}

最新文章

  1. LInux MySQL 数据库 的一些操作
  2. LUA OOP 单例模式实现的 一个 方案
  3. Xcode解决代码高亮、语法提示、错误警告等功能失效的解决方法
  4. .NET Core尝试
  5. js文本框提示和自动完成
  6. 2.python基础深入(元组、字符串、列表、字典)
  7. unity3d快捷键大全
  8. android下面的文案重用
  9. J2EE ssm框架-服务启动项内存加载数据及读取。
  10. 关于泥水佬的minihttp与MVC4的对比
  11. java调用存储过程超时及DBCP参数配置说明
  12. 软考之路--从生活着手,看PV如何操作
  13. yolo v2使用总结
  14. SCTP一到多式流分回射服程序
  15. 关于ava容器、队列,知识点总结
  16. 网络:LVS负载均衡原理
  17. BZOJ4399魔法少女LJJ——线段树合并+并查集
  18. python 历险记(三)— python 的常用文件操作
  19. shell中调用R语言并传入参数的两种步骤
  20. BFS和DFS详解以及java实现

热门文章

  1. 【power designer】使用power designer编辑pdm物理模型图时,为字段添加中文备注
  2. mysql 的常用查询
  3. 设计模式之适配器模式(php实现)
  4. linux 远程同步数据工具rsync (1)
  5. nginx $document_uri 参数使用
  6. Linux下系统信息工具之Saidar
  7. C#中 protected internal 和 internal 的区别
  8. MongoDB系列四:解决secondary的读操作
  9. Hadoop部署记录
  10. 自己写的粗糙的Excel数据驱动Http接口测试框架(一)