题目链接:http://qscoj.cn/contest/12/problem/53/

题意:中文题诶~

思路:n个点, 那么最多用n种颜色,所以我们可以枚举颜色种类1~n,然后再判断用 i 种颜色可不可行;

对于如何判断,dfs一遍就好了。。。

代码:

 #include<stdio.h>
#include<string.h>
#include <iostream>
#define MAXN 20
using namespace std; int mp[MAXN][MAXN];//记录图
int vis[MAXN];//vis[i]记录i着的是哪种颜色
int sum=;//保存可以着色的方案数
int m, n; bool is_ok(int t, int i){//判断给节点t上颜色i是否可行
for(int j=; j<t; j++){
if(mp[t][j]&&vis[j]==i)
return false;
}
return true;
} void dfs(int t, int cnt){//dfs判断用cnt中颜色是否可以给n个点着色
if(t>n){
sum++;
return;
}
for(int i=; i<=cnt; i++){
if(is_ok(t, i)){
vis[t]=i;
dfs(t+, cnt);
vis[t]=;
}
}
} int main(void){
while(scanf("%d%d", &n, &m)!=EOF){
memset(mp, , sizeof(mp));
for(int i=; i<m; i++){
int x, y;
scanf("%d%d", &x, &y);
mp[x][y]=mp[y][x]=;//建临接矩阵
}
for(int i=; i<=n; i++){//枚举颜色种数
memset(vis, , sizeof(vis));
sum=;
dfs(, i);
if(sum){
printf("%d\n", i);
break;
}
}
}
return ;
}

qscoj53(图的m着色问题)的更多相关文章

  1. 【回溯】图的m着色问题

    问题 C: [回溯]图的m着色问题 时间限制: 1 Sec  内存限制: 128 MB提交: 1  解决: 1[提交][状态][讨论版] 题目描述 给定无向连通图G=(V, E)和m种不同的颜色,用这 ...

  2. 编程之美:1.9高效率安排见面会 图的m着色问题 回溯法

    原书问题,可以转换为图的m着色问题 ,下面该问题的代码 这里有参考ppt与code,免积分载 http://download.csdn.net/detail/u011467621/6341195 // ...

  3. [题解]图的m着色问题

    图的m着色问题(color) [题目描述] 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的 ...

  4. 图的M 着色问题

    题目描述给定无向连通图G 和M 种不同的颜色,用这些颜色为图G 的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G 中每条边的2 个顶点着不同的颜色,则称这个图是M 可着色的.图的M 着色问题是对 ...

  5. P2819 图的m着色问题

    题目背景 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的.图的m着色问题是对于给定图G和m ...

  6. 图m的着色问题(搜索)

    图的m着色问题 [问题描述]        给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的 ...

  7. 图的m着色问题 (回溯搜索)

    图的m着色问题 [问题描述]        给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的 ...

  8. 算法java实现--回溯法--图的m着色问题

    (转自:http://blog.csdn.net/lican19911221/article/details/26264471) 图的m着色问题的Java实现(回溯法) 具体问题描述以及C/C++实现 ...

  9. 洛谷——P2819 图的m着色问题

    P2819 图的m着色问题 题目背景 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的.图的 ...

随机推荐

  1. C#用Infragistics 导入导出Excel

    最近项目中有数据的导入导出Excel的需求,这里做简单整理. 公司用的是Infragistics的产品,付费,不需要本地安装Office. 有需要的朋友可以下载 Infragistics.2013.2 ...

  2. hdu 3932 Groundhog Build Home

    Groundhog Build Home Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

  3. hdu 1542&&poj 1151 Atlantis[线段树+扫描线求矩形面积的并]

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  4. 6.5.1.3 Caching SHA-2 Pluggable Authentication

    MySQL :: MySQL 8.0 Reference Manual :: 6.5.1.3 Caching SHA-2 Pluggable Authentication https://dev.my ...

  5. spark 划分stage Wide vs Narrow Dependencies 窄依赖 宽依赖 解析 作业 job stage 阶段 RDD有向无环图拆分 任务 Task 网络传输和计算开销 任务集 taskset

    每个job被划分为多个stage.划分stage的一个主要依据是当前计算因子的输入是否是确定的,如果是则将其分在同一个stage,从而避免多个stage之间的消息传递开销. http://spark. ...

  6. C++笔记之用户定义的转换

    用户定义的转换(User-defined Conversion) 是一种将一个类类型转换为另一种类型的机制 语法 operator conversion-type-idexplicit operato ...

  7. 解决Windows x64bit环境下无法使用PLSQL Developer连接到Oracle DB中的问题

    本文是原创文章,转载请注明出处: http://blog.csdn.net/msdnchina/article/details/46416455 解决Windows x64bit环境下无法使用PLSQ ...

  8. SpringBoot-(9)-MyBatis 操作数据库

    这里仅仅以插入数据为例: 一, 创建基于MyBatis的项目 具体流程参考之前帖 二,创建Mapper接口 public interface AccountMapper { @Insert(" ...

  9. Tomcat Session Clustering

    搭建 Tomcat 集群需要解决很多的问题,其中之一就是要解决 Session 共享问题.小规模集群可以使用 Tomcat 提供的 Session Clustering 来解决. For the im ...

  10. .cxx_destruct crash

    开发过程中遇到 YXTBaseLabelCell .cxx_destruct崩溃,查了下,会在调用类的dealloc方法时调用cxx_destruct,于是看了下代码,找dealloc可能会崩溃的原因 ...