图的色数

紫书P286:

经典问题,无向图 G ,每个节点染色,相邻的节点不同色,求最少多少颜色。

设 d(S) 表示把节点 S 染色,所需要的最少颜色。 则有 d(S) = d(S-S) + 1; S是可以染成一种颜色的,(即S没有u,v使得u,v相邻)。然后就是在S中枚举这个子集 S了。

#include <bits/stdc++.h>
using namespace std;

#define maxnode 1000
#define INF 0x3f3f3f3f

int n;  ///节点个数
int d[maxnode<<1]

int main()
{

    d[0] = 0;
    for(int S=1;S<(1<<n);S++) {
        d[S] = INF;
        for(int S0 = S; S0 ; S0 = (S0-1)&S) {
            if(no_edges_inside[S0])
                d[S] = min(d[S],d[S-S0]+1);
        }
    }

    return 0;
}
时间: 2024-10-24 05:48:58

图的色数的相关文章

图m着色问题

1 问题描述: 给定无向图,m种不同的颜色.使每一种着色法使G中每条边的2个顶点不同颜色,若一个图最少需要m种颜色才能使图中每条边连接的2个顶点着不同颜色,则成这个数m为该图的色数.求一个图的色数m的问题称为图的m可着色优化问题. 2 算法设计 用图的邻接矩阵a表示无向图连通图G=(V,E). 若存在相连的边,则a[i][j] = 1,否则 a[i][j]=0. 整数1,2,3...m用来表示为一棵高度为n+1的完全m叉树. 解空间树的第i层中每一结点都有m个儿子,每个儿子相应于x[i]的m个可

图论---图的m-点着色判定问题(深搜--迭代式)

转自 图的m着色问题 图的m-着色判定问题--给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色,是否有一种着色法使G中任意相邻的2个顶点着不同颜色? 图的m-着色优化问题--若一个图最少需要m种颜色才能使图中任意相邻的2个顶点着不同颜色,则称这个数m为该图的色数.求一个图的最小色数m的问题称为m-着色优化问题. 算法描述(迭代算法) color[n]存储n个顶点的着色方案,可以选择的颜色为1到m t=1->n 对当前第t个顶点开始着色:(DFS) if: t>

个人总结-----非贪心算法的图的m着色判断及优化问题

1.问题描述: 对于著名的图的m着色,有两个主要的问题,一个是图的m色判定问题,一个是图的m色优化问题,描述如下. 图的m色判定问题: 给定无向连通图G和m种颜色.用这些颜色为图G的各顶点着色.问是否存在着色方法,使得G中任2邻接点有不同颜色. 图的m色优化问题:给定无向连通图G,为图G的各顶点着色, 使图中任2邻接点着不同颜色,问最少需要几种颜色.所需的最少颜色的数目m称为该图的色数. 对于网上或书上的一些求解方式主要用贪心算法求解的方式,也有用回溯法的方式(一般不用,时空太大).如这位博主 

序列可图化判定及顶点着色

1.度序列可图化问题 可图化的度序列其表示的图并不唯一,即画出来的图有可能不是同构体,主要原因是由度序列产生生成矩阵的时候方法并不唯一. 例子:度序列 [3 4 2 3 4 2] 图1 图2 注意度数为3 的两个顶点在图1中并不连接,在图2中却相连,说明图1图2不是同构. 对于可图化序列的简单图绘制需要用到生成矩阵,表示了随着顶点数增加而图拓展的过程.距离如下,度序列为 ,其相应的度序列矩阵为    生成矩阵的第i行等于度序列矩阵的第i行减去它的第i+1行得到,若度序列矩阵出现负值,则该序列不可

图着色问题

图的m色判定问题:给定无向连通图G和m种颜色.用这些颜色为图G的各顶点着色,问是否存在着色方法,使得G中任意两邻接点有不同颜色. 图的m色优化问题:给定无向连通图G,为图G的各顶点着色,使图中任2邻接点着不同颜色,问最少需要几种颜色的最少颜色的数目m,称为该图的色数. 若图G是平面图,则他的色数不超过4色(4色定理) 4色定理的应用:在一个平面或球面上的任意地图能够只用4种颜色来着色使得相邻的国家在地图上有着不同颜色. 任意图的着色:Welch powell法 1.将G的节点按照度数递减的次序排

图着色算法详解(Graph Coloring)

图着色算法描述: https://www.jianshu.com/p/6a52b390f5fa 给定无向连通图和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.是否有一种着色法使G中每条边的两个顶点有不同的颜色. 这个问题是图的m可着色判定问题.若一个图最少需要m种颜色才能使图中每条边相连接的两个顶点着不同颜色,称这个数m为这个图的色数. 求一个图的色数m称为图的m可着色优化问题. 给定一个图以及m种颜色,请计算出涂色方案数. 分析: 细致分析后,t代表顶点还是能分析出来的.

图的着色算法

图着色算法描述: https://www.jianshu.com/p/6a52b390f5fa 给定无向连通图和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.是否有一种着色法使G中每条边的两个顶点有不同的颜色. 这个问题是图的m可着色判定问题.若一个图最少需要m种颜色才能使图中每条边相连接的两个顶点着不同颜色,称这个数m为这个图的色数. 求一个图的色数m称为图的m可着色优化问题. 给定一个图以及m种颜色,请计算出涂色方案数. 图的着色算法分析: Color存储着色方案. 从第

算法导论-顺序统计

目录 1.问题的引出-求第i个顺序统计量 2.方法一:以期望线性时间做选择 3.方法二(改进):最坏情况线性时间的选择 4.完整测试代码(c++) 5.参考资料 内容 1.问题的引出-求第i个顺序统计量 什么是顺序统计量?及中位数概念 在一个由元素组成的集合里,第i个顺序统计量(order statistic)是该集合第i小的元素.例如,最小值是第1个顺序统计量(i=1),最大值是第n个顺序统计量(i=n).一个中位数(median)是它所在集合的“中点元素”.当n为奇数时,中位数是唯一的:当n

Kneser猜想与相关推广

本文本来是想放在Borsuk-Ulam定理的应用这篇文章当中.但是这个文章实在是太长,导致有喧宾夺主之嫌,从而独立出为一篇文章,仅供参考. (图1:Kneser叙述他的猜想原文手稿) 目录 1 Lyusternik-Shnirel'man定理与Greene定理 2 Kneser猜想与Greene的证明 3 Lovász的证明大意 4 Bárány的证明与Schrijver定理 5 Dol'nikov定理与超图上的Kneser猜想 6 Matou?ek的组合证明以及推广 7 拓扑组合的历史注记 8