1.问题

给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。

2.解析

使用回溯算法来解决问题。
设G有n个顶点,将顶点编号为1, 2, … n,则搜索空间为深度n的m叉完全树,将颜色编号为1,2, .,m,结点
<x1,x2…,xk >(x1,x2…,xk∈{1,…,m},1≤k≤m)表示顶点1的颜色x1,顶点2的颜色x2,…,顶点k的颜色xk

3.设计

//判断是否能着色
bool cancColoring(int x) {for (int i = 1; i <= n; ++i) {//若两点相邻且颜色相同if (graph[i][i] && color[i] == color[i]) {return false;}}return true;
}
//着色
void coloring(int x){if (x>n) {for (int i = 1; i <= n; i++){printf("%d ", color[i]);}s++;printf("\n");} else {for (int i = 1; i <= m; ++i) {color[x] = i;if (cancColoring(x)) {coloring(x+1);}color[x] = 0;}}
}

4.分析

5.码源

源码地址: https://github.com/chaoxing0910/ex12

算法分析与设计实践 - 作业12 - 给定无向连通图G和m种颜色相关推荐

  1. 算法分析与设计实践-作业2-Dijkstra算法求最短距离

    1. 问题 对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径. 2. 解析 Dijkstra算法通过从起始节点往相邻节点不断进行扫描,更新dist数组.path数组和set数组.然后遍历s ...

  2. 算法分析与设计实践-作业七-投资问题

    一.问题 设m元钱,n项投资,函数Fi(x)表示投入第i项产生的效益,i=1,2,3 --n,问如何分配这m元钱,使投资效益最高? 二.组合优化问题 假设分配给第i个项目的钱为xi;即求max{f1( ...

  3. 基于广度优先遍历算法求采用邻接表存储的无向连通图G中从顶点u到v的最短路径

    问题 假设图G采用邻接表存储,设计一个算法,求不带权无向连通图G中从顶点u->v的最短路径(路径上经过的顶点数最少.采用广度优先遍历来实现. 基本思路 我们首先来看一下BFS的过程: 图片摘自慕 ...

  4. 算法分析与设计—— 遍历问题【给定一个装满水的8品脱壶】

    问题: 西蒙.丹尼斯.泊松是著名的法国数学家和物理学家.据说在他遇到某个古老的谜题之后,就开始对数学感兴趣了,这个谜题是这样的:给定一个装满水的8品脱壶以及两个容量分别为5品脱和3品脱的空壶,如何通过 ...

  5. 作业12图的着色问题

    问题图的m着色问题.给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个 顶点一种颜色.如果要求G的每条边的两个顶点着不同颜色.给出所有可能的着色方 案:如果不存在,则回答"NO&qu ...

  6. 算法分析与设计实验十二

    问题 给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色.如果要求G的每条边的两个顶点着不同颜色.给出所有可能的着色方案:如果不存在,则回答"NO". 解析 四 ...

  7. 算法分析与设计 西工大 noj 第二次实验

    算法分析与设计 西工大 noj 第二次实验 Problem A 0-1背包问题 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 需对容量为c 的背包进行装载.从n 个物品中选 ...

  8. 算法分析与设计-实验四 回溯算法设计

    文章目录 1.0-1背包问题 2.旅行售货员问题 3.图的m着色问题 一.实验目的: 掌握用回溯法解题的算法框架:根据回溯法解决实际问题. 二.实验所用仪器及环境 Windows 7 以上操作系统,P ...

  9. 东师19年春计算机在线作业,东师算法分析与设计20春在线作业1【标准答案】

    算法分析与设计20春在线作业1题目 试卷总分:100  得分:100 一.单选题 (共 20 道试题,共 40 分) 1.按F5开始调试,程序便会直接运行到断点处.接下来可以逐行来运行程序,查看各个变 ...

最新文章

  1. 不包含本位置值的累乘数组
  2. WINDOWS SERVER 2003从入门到精通之DHCP中继代理
  3. (转)Python 用hashlib求中文字符串的MD5值
  4. 使用fyne绘制一个交通图标
  5. vi 打开不同编码的文件
  6. 【报表技术】IReport图形化报表开发工具生成PDF文档
  7. Activity has leaked window that was originally added 问题解决
  8. 微软将在英国投入20亿Bing广告 挑战Google的统治地位
  9. MTU MSS 详解记录
  10. 受保护的属性无法直接读取
  11. Android fb0 截屏实现
  12. learnpythonthehardway下载_Python【十一】:阶段小结
  13. SpringBoot执行流程
  14. hadoop 依赖式job_Java项目中使用XXL-JOB调度框架
  15. xml文件中同时满足多个条件_问与答81: 如何求一组数据中满足多个条件的最大值?...
  16. mfc之CPtrArray数组
  17. 命令行进入android设置,命令行编译生成APK
  18. 计算机开放电子书 2016 归档
  19. 《A Neural Layered Model for Nested Named Entity Recognition》
  20. SAP Fiori 的附件处理(Attachment handling)

热门文章

  1. Android回弹效果新思考与更加易用的实现
  2. C语言 | 按键检测程序
  3. Java提取文本中的超链接添加a标签
  4. 英语四级真题作文 计算机,2017年6月英语四级作文真题范文 第1套:卖电脑
  5. Python爬虫知识汇总
  6. Jacobsen v. Katzer:开源运动的一个重大胜利
  7. 浦发银行软件测试面试真题(小编面试亲测)
  8. 讲解高防服务器抵御CC攻击的相关配置
  9. 海康威视笔试测评考什么?
  10. sqlserver数据库不离线清空ldf日志