hdu5285-wyh2000 and pupil-(染色法二分图判定)
http://acm.hdu.edu.cn/showproblem.php?pid=5285
题意:把互不认识的人分到两个组,第一组人数尽可能多。
题解:把互不认识的人连起来,当作二分图,二分图可能有多个,对于没有连线的点,扔到第一个图里。二色法对每个二分图染色,记录每个图比较多的颜色的数量累计到答案里。
特判坑:n<=1 或者 m==0
- #include<stdio.h>
- #include<iostream>
- #include<algorithm>
- #include<cstring>
- #include<math.h>
- #include<string>
- #include<map>
- #include<queue>
- #include<stack>
- #include<set>
- #define ll long long
- #define inf 0x3f3f3f3f
- using namespace std;
- int n,m;
- vector<int>a[];
- int color[];
- int zero,one;
- int minn,maxx;
- bool flag;
- void bfs(int x)
- {
- queue<int>que;///对x点进行广搜,二色法,一个标记为0,另一个标记为1
- zero=one=;
- zero++;
- que.push(x);
- color[x]=;
- while(!que.empty()&&flag)
- {
- int now=que.front();
- que.pop();
- int c=color[now];
- int len=a[now].size();
- for(int i=;i<len;i++)
- {
- int next=a[now][i];
- if(color[next]==-)///如果没有被染色过,
- {
- que.push(next);
- if(c==)
- color[next]=,one++;
- else
- color[next]=,zero++;
- }
- else ///被染色过
- {
- if( color[next]==c )
- {
- flag=false;
- break;
- }
- }
- }
- }
- }
- int main()//hdu5285
- {
- int t;
- scanf("%d",&t);
- while(t--)
- {
- scanf("%d%d",&n,&m);
- for(int i=;i<=n;i++)
- a[i].clear();
- memset(color,-,sizeof(color));
- minn=maxx=;
- flag=true;
- if(n<=)
- {
- printf("Poor wyh\n");
- continue;
- }
- if(m==)///特判,否则全部染成0色
- {
- printf("%d 1\n",n-);
- continue;
- }
- while(m--)
- {
- int u,v;
- scanf("%d%d",&u,&v);
- a[u].push_back(v);
- a[v].push_back(u);
- }
- int no=;///没有被染色的点,其中第一组尽量多,则把没有染色的加到多的那一边去
- for(int i=;i<=n && flag;i++)
- {
- if(color[i]==- && a[i].size() )///没有被染色的点 并且 不是独立的
- {
- bfs(i);
- if(zero<one)
- swap(zero,one);
- maxx+=zero;
- minn+=one;
- }
- else if(color[i]==- && a[i].size()==)///独立的点染成颜色0,0是第一组,较多的那一组
- {
- color[i]=;
- maxx++;
- }
- }
- if(flag)
- printf("%d %d\n",maxx,minn);
- else
- printf("Poor wyh\n");
- }
- return ;
- }
hdu5285-wyh2000 and pupil-(染色法二分图判定)的更多相关文章
- 二分图判定+点染色/并查集 BestCoder Round #48 ($) 1002 wyh2000 and pupil
题目传送门 /* 二分图判定+点染色:因为有很多联通块,要对所有点二分图匹配,若不能,存在点是无法分配的,no 每一次二分图匹配时,将点多的集合加大最后第一个集合去 注意:n <= 1,no,两 ...
- HDU 5285 wyh2000 and pupil 判二分图+贪心
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5285 bc:http://bestcoder.hdu.edu.cn/contests/con ...
- Wrestling Match---hdu5971(2016CCPC大连 染色法判断是否是二分图)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5971 题意:有n个人,编号为1-n, 已知X个人是good,Y个人是bad,m场比赛,每场比赛都有一个 ...
- 染色法判断是否是二分图 hdu2444
用染色法判断二分图是这样进行的,随便选择一个点, 1.把它染成黑色,然后将它相邻的点染成白色,然后入队列 2.出队列,与这个点相邻的点染成相反的颜色 根据二分图的特性,相同集合内的点颜色是相同的,即 ...
- hdu 2444(染色法判断二分图+最大匹配)
The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- poj 2942 Knights of the Round Table(点双连通分量+二分图判定)
题目链接:http://poj.org/problem?id=2942 题意:n个骑士要举行圆桌会议,但是有些骑士相互仇视,必须满足以下两个条件才能举行: (1)任何两个互相仇视的骑士不能相邻,每个骑 ...
- HDU 5285 wyh2000 and pupil(dfs或种类并查集)
wyh2000 and pupil Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Other ...
- 洛谷P1525 关押罪犯(并查集、二分图判定)
本人蒟蒻,只能靠题解AC,看到大佬们的解题思路,%%%%%% https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编 ...
- HDU 2444:The Accomodation of Students(二分图判定+匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=2444 题意:给出边,判断这个是否是一个二分图,并求最大匹配. 思路:先染色法求出是否是一个二分图,然后再匈牙利求 ...
随机推荐
- SpringBoot集成Spring Security(3)——异常处理
源码地址:https://github.com/jitwxs/blog_sample 文章目录 一.常见异常二.源码分析三.处理异常不知道你有没有注意到,当我们登陆失败时候,Spring securi ...
- 一篇了解大数据架构及Hadoop生态圈
一篇了解大数据架构及Hadoop生态圈 阅读建议,有一定基础的阅读顺序为1,2,3,4节,没有基础的阅读顺序为2,3,4,1节. 第一节 集群规划 大数据集群规划(以CDH集群为例),参考链接: ht ...
- ng 打包给路径添加前缀
1.ng build --base --href /前缀名/--common - chunk --output-hashing=all --optimization 2.更改ts和html中的路径,将 ...
- 阿里云服务器ECS安全组设置 允许ping
另外也需要服务器的设置允许ping
- springboot 远程调试
首先以调试模式启动编译好的jar包,监听端口为5005 java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,addre ...
- 一个简单 System.Threading.Tasks.Dataflow.BufferBlock 示例
直接贴代码了: using System; using System.Threading.Tasks; using System.Threading.Tasks.Dataflow; namespace ...
- Problem 1059 老师的苦恼
Bob写文章时喜欢将英文字母的大小写混用,例如Computer Science经常被他写成coMpUtEr scIeNce,这让他的英文老师十分苦恼,现在请你帮Bob的英文老师写一个程序能够将Bob的 ...
- 【Elasticsearch】【WEB】java web服务连接es elasticsearch始终报错,无法正常连接使用的错误解决历程
前情提要: web服务往华为云上迁移 ================内网的好环境,相关配置=================== 1.web服务关于ES的集群配置如下: elasticAddress ...
- Application类-欢迎页(初始界面)
在程序界面显示前,如果我们处理了很多耗时操作,这个时候给用户提示一个欢迎页便是十分友好的.WPF为我们提供了这个特性: 第一种方法:通过设置图片资源的生成操作 粘贴一个图片到我们的项目中 在解决方案管 ...
- 性能监控工具的配置及使用 - Spotlight On Oracle(oracle)
一. Spotlight On Oracle(oracle)1.1. 工具简介Spotlight是一个强有力的Oracle数据库实时性能诊断工具,提供了一个直观的.可视化的数据库活动展现.S ...