zoukankan      html  css  js  c++  java
  • 图的M 着色问题

    图的M 着色问题(color)

    题目描述

    给定无向连通图G 和M 种不同的颜色,用这些颜色为图G 的各顶点着色,

    每个顶点着一种颜色。如果有一种着色法使G 中每条边的2 个顶点着不同的颜

    色,则称这个图是M 可着色的。图的M 着色问题是对于给定图G 和M 种颜色,

    找出所有不同的着色法。

    对于给定的无向连通图G 和M 种不同的颜色,编程计算图的所有不同的着

    色法。

    输入

    第一行有3 个正整数N,K 和M,表示给定的图G 有N 个顶点和K 条边,M 种

    颜色。顶点编号为1,2……,N。接下来的K 行中,每行有2 个正整数U,V,

    表示图G 的一条边(U,V)。

    数据范围:1<N<=100 1<K<=2500 1<M<=6

    输出

    不同的着色方案数

    样例输入

    5 8 4

    1 2

    1 3

    1 4

    2 3

    2 4

    2 5

    3 4

    4 5

    样例输出

    48

    ****记录下每一个左端点和右端点,排序然后把每一个左端点颜色如果和后端点颜色一样就重新上色。所有点上完色就方法加一,然后他一直输出0。。。我也很绝望哇。

    ***存储n个顶点的着色方案,可以选择的颜色为1m

    t=1->n

    对当前第t个顶点开始着色:

      if:   t>n  则已求得一个解,输出着色方案即可

    else:   依次对顶点t着色1-m

              if:   t与所有其它相邻顶点无颜色冲突,则继续为下一顶点着色;

          else:     回溯,测试下一颜色。

     

     

                                                 

  • 相关阅读:
    FJUT3260
    Codeforces Round #387 (Div. 2)
    poj 1375
    试题 历届试题 蚂蚁感冒(模拟)
    丢手绢(尺取)
    「金」点石成金(dfs)
    小A买彩票(dp)
    不平行的直线
    最少交换次数
    第k小数(桶排序)
  • 原文地址:https://www.cnblogs.com/rax-/p/8719926.html
Copyright © 2011-2022 走看看