随笔分类 -  二分图

摘要:看一个图是否时二分图,是的话输出染色方案,不是的话输出任意一个奇环。 找到奇环直接回溯即可。 #include <bits/stdc++.h> using namespace std; const int M = 3e5+7; int n,m; int flg,cnt,head[M]; int co 阅读全文
posted @ 2018-10-07 11:18 LMissher 阅读(118) 评论(0) 推荐(0)
摘要:给一幅图,并且给出图里哪些是好点,哪些是坏点,问你这副图能不能被分成一个好点坏点图不矛盾。 我们先把给定了是好点或者坏点的点进行二分图染色,如果染出来是矛盾的就错误。 然后在把那些和已知点不在同一个联通块里的点随意指定初始颜色染色,染出来是矛盾的就错误。 #include <bits/stdc++. 阅读全文
posted @ 2018-09-19 16:31 LMissher 阅读(85) 评论(0) 推荐(0)
摘要:题意:给你一个树形的二分图,问最多可以添加多少条边让其始终为二分图。 题解:利用二分图的染色判断出两个集合中各有多少个数,总的边数应该为两个集合顶点数乘积,所以输出乘积减n-1就可以了。 PS:注意要用long long,因为这个比赛的时候WA了无数发。。。 代码: # include<iostre 阅读全文
posted @ 2017-09-20 13:07 LMissher 阅读(113) 评论(0) 推荐(0)
摘要:hdu终于100题了 嘎嘎嘎嘎嘎 题意:有n个人,一些人认识另外一些人,选取一个集合,使得集合里的每个人都互相不认识,求该集合中人的最大个数。 题解:这题就是求最大独立集,但是这并不是两个集合,而是一个集合,所以求出最大匹配后需要/2,然后代公式:最大独立集=N-最大匹配。最大匹配直接用匈牙利算法求 阅读全文
posted @ 2017-08-20 11:48 LMissher 阅读(105) 评论(0) 推荐(0)
摘要:题意:有p个课程,n个学生,每个课程有x个学生喜欢。如果每个课程都至少可以分配一个学生就输出YES,否则输出NO。 题解:匈牙利算法裸题。 代码: #include <cstdio>#include <cstring>#define N 400int Map[N][N],S[N],vis[N],n; 阅读全文
posted @ 2017-08-20 11:23 LMissher 阅读(181) 评论(0) 推荐(0)
摘要:题意:有x个男生各自有喜欢的女生,y个女生各自有喜欢的男生。互相喜欢的在一起有好感度。问怎样好感度最高。 题解:匈牙利算法裸题。 代码: #include <cstdio>#include <cstring>#define N 1500int Map[N][N],M[N],vis[N];int k, 阅读全文
posted @ 2017-08-20 11:04 LMissher 阅读(117) 评论(0) 推荐(0)