zoukankan      html  css  js  c++  java
  • 棋盘染色法(双色染色法)

      棋盘染色法是一类借助国际象棋棋盘通过染色解决组合问题的解题方法, (组合数学)

    存在性问题:染色法

    可行性问题:构造法

      双色染色法(用两种颜色进行染色)

      

            一个5*5的棋盘,可以上下左右移动,问从图中的黑色格子出发,能否走遍所有格子并且不重复走一个格子.?

                      

      因为是黑色格子为起点, 你模拟一下 会发现无论怎么走 都会是 黑白黑白 交替, 而 5*5 总共 25格子  12黑格子  13 白格子,  起点为黑色  黑-> - > ->  如果终点为黑格的话  黑色格子需要比白色格子多一个 矛盾故不可, 如果终点为白格的话, 黑->白 ……-> 黑-> 白 黑格数量需等于白格  矛盾故不可, 综上, 无解

                             一个8*8的格子纸, 去掉对角两格,能否用1*2的方块来覆盖它,?

                                

      问题的本质是1*2的方块的覆盖, 这说明问题和奇偶性有关,染色成国际象棋以后, 发现不管不管怎么放  1*2方块都会遮住一个黑色一个白色块,所以如果我们数一下黑白格子的数量,就会发现 黑格比白格少两个, 故不可.

    给出 n*m 的棋盘, 用1*k的矩形将棋盘覆盖
    n*m的棋盘被 1*k 矩形完全覆盖的充要条件是 k|n 或 k|m

    m*n的棋盘存在p*q 矩形完全覆盖的充要条件是 m,n 满足以下条件之一

    i)   p|x  && q|y

    ii)  p|x,q|x  && 存在自然数 a、b 使得 y = a*p+b*q

    {x,y} = {m, n}

    根据题目的性质, 转化成棋盘染色的方法 能有效解决很多问题 选择对称性大的分割, 小范围枚举来验证结论

    扩展

    还可以扩展到1*k   多色染色法 能解决很多模 k 性质问题

    还有 不规则染色法,空间三维染色法,

    图着色问题, 用尽可能少的颜色给图着色,

    扩展

    在图论的数学领域,哈密顿路径(或可追溯路径、哈密顿链)是无向或有向图中恰好访问每个顶点一次的路径。

    哈密尔顿图的定义: G=(V,E)是一个图,若G中一条通路通过且仅通过每一个顶点一次,称这条通路为哈密尔顿通路。若G中一个圈通过且仅通过每一个顶点一次,称这个圈为哈密尔顿圈。若一个图存在哈密尔顿圈,就称为哈密尔顿图。

    哈密尔顿图的必要条件: 若G=(V,E) 是一个哈密尔顿图,则对于V的每一个非空子集S,均有W(G-S) ≤|S|。其中|S|是S中的顶点数,W(G-S)表示图G擦去属于S中的顶点后,剩下子图的连通分枝的个数。

    哈密尔顿图的充分条件: 设G=(V,E)是一个无向简单图,|V|=n. n≥3. 若对于任意的两个顶点u,v∊V,d(u)+d(v) ≥n,那么, G是哈密尔顿图 

  • 相关阅读:
    TCP_UCP通信原理及案例
    JavaScript高级笔记DOM与BOM
    JavaScript基本语法,基本对象,正则表达式
    JDBC连接池&JDBCTemplate&Sping JDBC
    JDBC,JDBCUtils,JDBC控制事务
    自动化工具ansible(0——准备部署工作)
    监控软件篇——prometheus+exporter组件+grafana
    命令工具篇
    sed 命令备忘
    ES6数据分组
  • 原文地址:https://www.cnblogs.com/163467wyj/p/12142953.html
Copyright © 2011-2022 走看看