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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/572689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML学习笔记4之第五章第六章

2017-03-02 完成第五章第六章的学习 第五章&#xff1a;为界面增加图像 浏览器处理图像的过程&#xff1a;先请求页面&#xff0c;若需要图片&#xff0c;在请求图片 图像的格式&#xff1a;JPEG&#xff0c;PNG&#xff0c;GIF&#xff0c;各自的特点和优势 内联元素<img&g…

c语言printf %llo,c++ - Printf疯狂了 - 堆栈内存溢出

你不能使用%d来打印long long 。 你必须使用%lld 。 (因此请使用"\\n%d %d | %lld %lld | %d %d"作为格式字符串。)特别是&#xff0c;显而易见的是&#xff0c;在“52 0 | 52 0”中&#xff0c;第一个52 0是a.rez &#xff0c;第二个52 0是b.rez (这些中的每一个都是…

js柯里化

function sum(x){console.log(x:x);var y function(x){ console.log(xx:x);console.log(y:y);return sum(xy) }y.toString y.valueOf function(){ return x; } console.log(yy:y);return y; } sum(1)(2)(3)(4);//10 转载于:https://www.cnblogs.com/yuri2016/p/6496486.ht…

用c语言随机获区100个整数,用rand() 函数去100 个随机的整数的有关问题

用rand() 函数去100 个随机的整数的问题int rand100 (((double) rand() / (double) RAND_MAX) * RANGE_MAX RANGE_MIN);你让 RANGE_MAX1&#xff1b;RANGE_MIN 0问题&#xff1a;1 rand() 返回的是 什么类型的数&#xff1f;2 (double) rand() / (double) RAND_MAX)&#x…

BZOJ 3697: 采药人的路径 [点分治] [我想上化学课]

传送门 题意&#xff1a; 路径有$-1,1$两种权值&#xff0c;求有多少路径满足权值和为$0$且有一个点将路径分成权值和为$0$的两段 第四节课本来想去上化学&#xff0c;然后快上课了这道题还没调出来.....可恶我想上化学 昨天两节语文课潸然的李煜讲座也没去听呜呜听说今天的语文…

c#语言规范所在文件夹,C#规范整理·语言要素

如有不理解&#xff0c;请留言&#xff0c;开始!1. 正确操作字符串拼接字符串一定要考虑使用 StringBuilder ,默认长度为16,实际看情况设置。StringBuilder本质&#xff1a; 是以非托管方式分配内存。同时StringFormat方法 内部也是使用StringBuilder进行字符串格式化。2. 使用…

Discuz常见小问题-如何取消登陆发帖验证码

1 正常情况下&#xff0c;用户点击登录之后&#xff0c;需要填写验证码 2 进入后台&#xff0c;点击防灌水&#xff0c;验证设置&#xff0c;然后下面的各个选项可以设置是否启用验证码。 转载于:https://www.cnblogs.com/acetaohai123/p/6504754.html

RC电路的充放过程C语言实现,RC串联电路的暂态过程基本原理介绍

RC串联电路的特点&#xff1a;由于有电容存在不能流过直流电流&#xff0c;电阻和电容都对电流存在阻碍作用&#xff0c;其总阻抗由电阻和容抗确定&#xff0c;总阻抗随频率变化而变化。RC 串联有一个转折频率&#xff1a;f01/2πR1C1当输入信号频率大于f0 时&#xff0c;整个 …

jvm 方法区

方法区在一个jvm实例的内部&#xff0c;类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。 jvm实现的设计者决定了类型信息的内部表现形式。如&#xff0c;多字节变量在类文件是以big-endia…

C语言1094题目,基于visual Studio2013解决C语言竞赛题之1094纵横图

/************************************************************************//* 二)程序设计⑴奇阶纵横图n2m1请见填写方法分析1)。 该程序在 数组23题已经完成⑵偶阶纵横图n2(2m1)时&#xff0c;算法分析是把方阵划成A、B、C、D四个小子阵&#xff0c;然后进行多次交换数字来…

c语言考试常考试卷,c语言面试最必考的十道试题,求职必看!!!

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼6、free()函数问&#xff1a;下面的程序会在用户输入’freeze’的时候出问题&#xff0c;而’zebra’则不会&#xff0c;为什么?#include int main(int argc, char *argv[]) {char *ptr (char*)malloc(10);if(NULL ptr){printf(…

Java 导出Excel

前台代码&#xff1a; View Code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546<button class"btn btn-sm btn-success" type"submit" id"detailEp" onclick"return exportCheck(true);"…

android 使用动态的svg资源,在Android中使用SVG作为资源 – victor

victor在Android中使用SVG作为资源。使用这个插件&#xff0c;你可以为SVG定义源文件&#xff0c;它们将会自动在build中光栅化/导入&#xff0c;无需源代码。安装在build.gradle中添加:buildscript {repositories {jcenter()}dependencies {classpath com.trello:victor:0.3.0…

centOS改编码

http://jingyan.baidu.com/article/ab69b270de8b4f2ca7189f1d.html cd /rootvim .bashrcLANG"zh_CN.GBK" :wqsoure.bashrc转载于:https://www.cnblogs.com/finallyliuyu/p/6513587.html

android 键盘 自动消失,android 软键盘 回到键 消失事件 监听

弹出输入法 时 隐藏了 ‘底部状态栏’ 在按 物理 返回键 后&#xff0c; 软键盘消失后 恢复 ‘底部状态栏’public class ImageViewCareIME extends ImageView{public ImageViewCareIME(Context context){super(context);// TODO Auto-generated constructor stub}public stati…

java基础_变量

变量: 数据类型: 基本类型&#xff1a;short/byte(1byte)/char(2byte)-->int(4byte)-->long(8byte)-->float&#xff08;8byte&#xff09;-->double&#xff08;16byte,默认&#xff09;、boolean java变量 从本质上讲&#xff0c;变量其实是内存里面的一小块区域…

android 开机动画尺寸,Android开机Logo动画制作

开机Logo制作1.准备Logo图片准备一张符合尺寸要求(例如&#xff1a;1280x720)的图片&#xff0c;最好是png或jgp。2.用Hitool工具制作镜像文件海思芯片使用的是Hitool工具&#xff0c;打开Hitool&#xff0c;选择HiFastplay&#xff0c;选择右下角的Logo设置&#xff0c;添加图…

18:验证子串

18:验证子串 查看提交统计提问总时间限制: 1000ms内存限制: 65536kB描述输入两个字符串&#xff0c;验证其中一个串是否为另一个串的子串。 输入输入两个字符串&#xff0c; 每个字符串占一行&#xff0c;长度不超过200且不含空格。输出若第一个串s1是第二个串s2的子串&#xf…

android安装过哪些应用程序,如何安装应用程序两次而不干扰Android?

我有一个Android应用程序(让我们称为X),我想创建第二个应用程序X2,但基于另一个应用程序.所以我将清单应用程序名称属性更改为X2也改变了包名...但是当我安装X2时,应用程序X被删除了!我应该更改哪些属性,以便我可以在一台设备上独立安装这两个应用程序.我正在研究eclispe.packa…

android webview es6,Android v 5.0 webview HTML5,CSS3和ES6兼容性

我有一个使用Crosswalk的混合Android应用程序.几个月前我转向Crosswalk,这是一个巨大的生产力提升.我花了很多时间测试不同的Android操作系统版本,并且在HTML5 / CSS3 / ES6实现不完整的情况下遇到的问题要少得多 – 如果我理解正确的话,因为Crosswalk是基于Chromium而不是早期…