P2819 图的m着色问题
题目背景
给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的。图的m着色问题是对于给定图G和m种颜色,找出所有不同的着色法。
题目描述
对于给定的无向连通图G和m种不同的颜色,编程计算图的所有不同的着色法。
输入输出格式
输入格式:
第1行有3个正整数n,k 和m,表示给定的图G有n个顶点和k条边,m种颜色。顶点编号为1,2,…,n。接下来的k行中,每行有2个正整数u,v,表示图G 的一条边(u,v)。
输出格式:
程序运行结束时,将计算出的不同的着色方案数输出。
输入输出样例
5 8 4 1 2 1 3 1 4 2 3 2 4 2 5 3 4 4 5
48
说明
n<=100;k<=2500;
在n很大时保证k足够大。
保证答案不超过20000。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,k,t1,t2,ans;
][],b[];
bool check(int x,int y)//判断是否可以染色
{
;i<=n;i++)//寻找在相邻的点
{
if(i==y) continue;//由于自己与自己比较没意思,则跳过这种情况
&&b[i]==x) //若两点相连通且两点的颜色相同,这不合法,返回0;
;
}
;//符合条件可以染色的点,返回1;
}
void dfs(int x)
{
if(x>n)
{
ans++;
return ;
}//若染色的个数已超过总点数,方案数加一
;i<=m;i++)
{
&&check(i,x)) //该点未被染过 且该店现在可以被染
{
b[x]=i;//标记为染色
dfs(x+);//搜索下一个顶点
b[x]=;
}
}
}
int main()
{
scanf("%d%d%d",&n,&k,&m);
;i<=k;i++)
{
scanf("%d%d",&t1,&t2);
a[t1][t2]=;
a[t2][t1]=;//构建双向图
}
dfs();//从一开始找起
printf("%d",ans);
;
}
P2819 图的m着色问题的更多相关文章
- 洛谷——P2819 图的m着色问题
P2819 图的m着色问题 题目背景 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的.图的 ...
- 洛谷 P2819 图的m着色问题
P2819 图的m着色问题 题目背景 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的.图的 ...
- P2819 图的m着色问题 洛谷
https://www.luogu.org/problem/show?pid=2819 题目背景 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使 ...
- P2819 图的m着色问题(DFS)
思路:最开始的回溯顺序是正常的图遍历的回溯顺序,其实也没有错.但是,因为怎么调都不对,看了题解.下面,请结合题解思路和代码一起感受一下回溯顺序的改变,算法的改变和代码在哪里实现了这种顺序. 回溯顺序: ...
- 【回溯】图的m着色问题
问题 C: [回溯]图的m着色问题 时间限制: 1 Sec 内存限制: 128 MB提交: 1 解决: 1[提交][状态][讨论版] 题目描述 给定无向连通图G=(V, E)和m种不同的颜色,用这 ...
- 编程之美:1.9高效率安排见面会 图的m着色问题 回溯法
原书问题,可以转换为图的m着色问题 ,下面该问题的代码 这里有参考ppt与code,免积分载 http://download.csdn.net/detail/u011467621/6341195 // ...
- [题解]图的m着色问题
图的m着色问题(color) [题目描述] 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的 ...
- 图的M 着色问题
题目描述给定无向连通图G 和M 种不同的颜色,用这些颜色为图G 的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G 中每条边的2 个顶点着不同的颜色,则称这个图是M 可着色的.图的M 着色问题是对 ...
- 图m的着色问题(搜索)
图的m着色问题 [问题描述] 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的 ...
随机推荐
- C++——内存使用
内存分配方式: (1)从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. (2)在栈上创建.在执行函数时,函数内局部变量的存储单 ...
- 【BZOJ 2006】[NOI2010]超级钢琴 ST
我们先把所有最左端对应的最优右端入堆,eg: z 在[l,r](由题目给出的L,R决定)之间的最优解 y,然后出堆以后,再入堆z,y-1,z,y+1,那么我们只需要用st找最大前缀和就好了(ST是一 ...
- BZOJ2631 tree(伍一鸣) LCT 秘制标记
这个题一看就是裸地LCT嘛,但是我wa了好几遍,这秘制标记...... 注意事项:I.*对+有贡献 II.先下传*再下传+(因为我们已经维护了+,不能再让*对+产生贡献)III.维护+用到size # ...
- 对zip文件进行解压操作和对一个文件进行压缩操作
注意这里用的是apche下的zip package org.springframework.validation; import org.apache.tools.zip.ZipEntry; impo ...
- 程序员的那些问题---转载自veryCD
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过 ...
- Linux 下打包报错:enospc (no space left on device)
昨天打了个包,早上发现很多页面js加载404,一查原来打包的min文件夹下是空的,打包出错了 Error code: enospc du -sh * rm -f 文件名称 rm -rf 目录名称 前端 ...
- C# using一般用法 (转)
using一般有着以下几种用法: 1.直接引入命名空间 a.using System ,这个是最常用的,就是using+命名空间,这样就可以直接使用命名空间中的类型,而免去了使用详细的命名空间 b.使 ...
- salt-api的使用
curl -k https://192.168.74.129:8006/ -H "Accept: application/x-yaml" -H "X-Auth-Token ...
- Tomcat启动报错:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
测试tomcat的comet Java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet 异常 因为工程 ...
- codefoeces 671 problem D
D. Roads in Yusland standard output Mayor of Yusland just won the lottery and decided to spent money ...