7-38 图着色问题 (25 分)

图着色问题是一个著名的NP完全问题。给定无向图G=(V,E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?

但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配,请你判断这是否是图着色问题的一个解。

输入格式:

输入在第一行给出3个整数V(0输出格式:

对每种颜色分配方案,如果是图着色问题的一个解则输出Yes,否则输出No,每句占一行。

输入样例:

6 8 3

2 1

1 3

4 6

2 5

2 4

5 4

5 6

3 6

4

1 2 3 3 1 2

4 5 6 6 4 5

1 2 3 4 5 6

2 3 4 2 3 4

输出样例:

Yes

Yes

No

No

一个简单的遍历图的问题,检查有连线的边颜色是否相同,判断使用颜色的数目是否等于k,必须要等于k,大于小于都不行,划重点。

其他地方就没有难度了。

#include

#include

#include

#include

using namespace std;

#define maxn 505

int map[maxn][maxn],judge[maxn][maxn];

int color[maxn],tong[maxn];

int n,m,k;

int cmp(int a,int b)

{

return a>b;

}

void init()

{

for(int i = 1; i <= n; i ++)

for(int j = 1; j <= n; j ++)

map[i][j] = maxn;

}

int main()

{

scanf("%d%d%d",&n,&m,&k);

init();

for(int i = 0; i < m; i ++)

{

int x,y;

scanf("%d %d",&x,&y);

map[x][y] = map[y][x] = 1;

}

int t;

scanf("%d",&t);

while(t--)

{

int flag = 0;

memset(tong,sizeof(tong));

for(int i = 1; i <= n; i ++)

{

scanf("%d",&color[i]);

int temp = color[i];

tong[temp]++;

}

sort(tong,tong+501,cmp);

for(int i = 0; i < maxn; i ++)

{

if(tong[i])

flag++;

else

break;

}

int index = 0;

if(flag>k||flagprintf("Non");

else if(!m)

printf("Yesn");

else

{

for(int i = 1; i <= n; i ++)

{

for(int j = i + 1; j <= n; j ++)

{

if(map[i][j]!=maxn&&color[i]!=color[j])

index ++;

else if(map[i][j]==maxn)

continue;

else if(map[i][j]!=maxn&&color[i]==color[j])

{

index = -1;

break;

}

}

if(index == -1)

break;

}

if(index == m)

printf("Yesn");

else

printf("Non");

}

}

}

总结

以上是编程之家为你收集整理的数据结构-图着色问题全部内容,希望文章能够帮你解决数据结构-图着色问题所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

四色着色问题 c语言编程,数据结构-图着色问题相关推荐

  1. 【数据结构(C语言)】数据结构-图

    图 文章目录 图 一.基本概念 1.图的定义 2.约定符号 3.分类 4.子图 5.路 6.其他术语 7.ADT 二.存储结构 1.邻接矩阵(数组) 2.邻接表 三.基本算法 1.遍历 2.求无向图的 ...

  2. 四色着色问题 c语言编程,四色问题C语言怎么解决

    思路:建立数据结构,录入数据内容,遍历着色,输出第一个可行的着色方案. 下面就四个方面详细分析一下 首先分析数据结构: 对于地图,一个区块包含一个唯一编号数据(这个编号可以是地名,也可以是数字)用来区 ...

  3. 三色小夜灯c语言编程,节能小夜灯

    基于MC68HC908JL3抽油烟机控制器设计    谢志义; 家居智能小夜灯的设计    陈余;王璇; 单片机LPC935的ISP使用点滴    向吉春; 基于USB总线的神经网络重建仪研制     ...

  4. 四自由度机械手c语言编程设计,四自由度机械手的机械结构原理毕业设计毕业论文...

    原标题:四自由度机械手的机械结构原理毕业设计毕业论文 四自由度机械手的机械结构原理毕业设计毕业论文 机械手是模仿人的手部动作,按给定程序.轨迹和要求实现自动抓取.搬运和操作的自动装置.它的应用价值在以 ...

  5. c语言程序 输入一个四位数,用c语言编程:输入一个四位数,求出它的个位、十位、百位、千位...

    满意答案 QQ89748770 推荐于 2018.02.26 采纳率:45%    等级:13 已帮助:7318人 C代码:--------------------- int a; scanf(&qu ...

  6. Go语言 大话数据结构——图

    1.名词解释: 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合.在图中的数据元素,我们称之为顶点( ...

  7. 四自由度机械手c语言编程设计,stm32开发:一种四自由度机械臂的简单算法

    最近在做一个四自由度的机械臂,要实现的功能是,通过输入XYZ三轴的坐标值,让机械臂自动导航到坐标位置. 原理一句话可以概括:输入三个坐标值,通过计算得到底部步进电机的旋转角度和剩余三个舵机的旋转角度. ...

  8. 请用c语言编程求图的最短路径,最短路径-交通图-c语言实现

    #include #include #include typedef struct ArcCell { int adj;                //相邻接 }ArcCell; typedef ...

  9. 大智慧c语言编程,【图】大智慧外接DLL之C语言编程源码交流帖_数据、教程交流论坛_理想论坛 - 股票论坛...

    private string[] GetCodes(string Market)   //读取Day.dat中的代码 { //沪市指数代码转换表,大智慧同时保存沪市两类代码 string[,] cod ...

最新文章

  1. 后台开发经典书籍--高性能mysql
  2. Java并发知识总结,超详细!(下)
  3. 图片上传unexpected end of stream
  4. 通信工程制图期末考试大纲
  5. 能力成熟度模型(CMM)
  6. 中国水培营养素行业市场供需与战略研究报告
  7. 哪个oracle工具可以免费,Sqlite导入Oracle工具下载官方免费版_SqliteToOracle2.2英文版 - 系统之家...
  8. 一起学些LLVM(五): 学习lli/vmir
  9. centos7 安装gitea使用
  10. 德国奔驰、博世和保时捷的员工年薪有多少?
  11. flask 网页 javascript 按钮 点击事件
  12. 无法开启 IE 开发者工具
  13. 基于Zookeeper的ResourceManager-HA配置
  14. 美国科技大佬们最爱看的书
  15. scrapy中用来代替crawl 功能的main文件配置
  16. 【算法研究】 AEC 回音消除算法
  17. Linux服务器EDAC CE memory read error
  18. GPS北斗校时(NTP校时服务器)在某市国土资源局投入使用
  19. 生信常用分析图形绘制04 -- 桑基图
  20. 全国首个国家级合规数字资产二级交易平台“中国数字资产交易平台”将于2023年1月1日在京举行启动发布仪式

热门文章

  1. 支持1050ti显卡的linux系统,NVIDIA 的 GTX1050 Ti 与 GTX1050 显卡登场
  2. ntext在mysql_varchar和text说不清的那些事
  3. 计算两个数的乘积java编写_Java模拟计算机的整数乘积计算功能示例
  4. tengine简单安装_树莓派使用宝塔面板安装LNMP环境
  5. oracle 8i漏洞渗透,一次通过Oracle8i入侵系统之旅(组图)
  6. php 图片 byte数组,php – 将图像存储在PostgreSQL数据库的bytea字段中
  7. java 生成apk包_Eclipse导出安卓apk文件的图文教程
  8. php 静态页面模板类,dedetag.class.php 静态模板类
  9. python窗体设计插件_Python 界面生成器 wxFormBuilder 的入门使用(wxPython的界面设计工具的初学笔记)...
  10. Python一行代码给儿子制作九九乘法表