随笔分类 - 团,最大团
摘要:题意:经典的图的染色问题,求对于给定的无向图中,给每个结点染两种不同颜色(黑色和白色)的一种且相邻结点的颜色不同,求染成黑色的最多结点数。分析:这个题求的图的最大独立集,最大独立集即为黑色节点的个数。由于原图的最大独立集=补图的最大团。而这个题是普通图,所以用回溯法来做,时间复杂度O(n*2^n)代码:View Code 1 #include <iostream> 2 #include <memory.h> 3 #include <stdio.h> 4 using namespace std; 5 6 const int maxnum=101; 7 bool
阅读全文
摘要:题意:已知班级有g个女孩和b个男孩,所有女生之间都相互认识,所有男生之间也相互认识,给出m对关系表示哪个女孩与哪个男孩认识。现在要选择一些学生来组成一个团,使得里面所有人都认识,求此团最大人数。思路:最大团问题。定理:原图的最大团=补图的最大独立集原图的最大独立集=补图的最大团。由于这个题的补图显然是一个二分图,而二分图的补图的最大独立集可以由匈牙利算法求的,所以该题的最大团问题可以转化成补图的最大独立集来做。代码:View Code 1 #include <iostream> 2 #include <stdio.h> 3 #include <memory.h&g
阅读全文
摘要:题意:染色问题,图中之间有边的两个区域不能染成相同的颜色。求将图中每个区域全部染色后需要最少的颜色。分析:参考染色定理得,无论图中有多少区域,最多需要4个区域。因此遍历这四种情况即可.代码:View Code 1 #include <iostream> 2 #include <stdio.h> 3 #include <memory.h> 4 using namespace std; 5 6 const int maxnum=27; 7 bool array[maxnum][maxnum]; 8 int num; 9 10 void fuction()11 {
阅读全文

浙公网安备 33010602011771号