图的m着色问题ACC PASCAL
来源:互联网 发布:如何学编程 编辑:程序博客网 时间:2024/05/21 11:16
图的m着色问题
Time Limit:10000MS Memory Limit:65536KTotal Submit:53 Accepted:46 Case Time Limit:1000MS
Description
图的m 着色问题描述如下:给定无向连通图G 和m 种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。如果有一种着色法使G 中每条边的2 个顶点着不同颜色,则称这个图是m 可着色的。图的m着色问题是对于给定图G和m 种颜色,找出所有不同的着色法。 编程任务: 对于给定的无向连通图G 和m种不同的颜色,编程计算图的所有不同的着色法。
Input
输入由多组测试数据组成。 每组测试数据输入的第一行有3 个正整数n,k 和m,表示给定的图G 有n个顶点和k条边,m种颜色。顶点编号为1,2,…,n。接下来的k行中,每行有2个正整数u,v,表示图G 的一条边(u,v)。
Output
对应每组输入,输出的每行是计算出的不同的着色方案数。
Sample Input
5 8 41 21 31 42 32 42 53 44 5
Sample Output
48
Source
这道题就是要开2个数组,其中一个是二维数组,用来判断是否相连,一个一维数组记录是什么颜色!!!
var i,j,k,n,m,s:longint; v,b:array[1..1000]of longint; c:array[1..1000,1..1000]of boolean;procedure init;var x,y:longint;begin readln(n,m,k); for i:=1 to m do begin read(x,y); c[x,y]:=true; c[y,x]:=true; end;end;function aaa(n,max:longint):boolean;var i:longint;begin aaa:=true; for i:=1 to max-1 do if (c[max ,i]=true) and (v[i]=n) then exit(false);end;procedure aa(dep:longint);var i:longint;begin if dep>n then begin inc(s); exit; end; for i:=1 to k do begin if aaa(i,dep) then begin v[dep]:=i; aa(dep+1); end; end;end;begin s:=0; init; aa(1); write(s);end.
0 0
- 图的m着色问题ACC PASCAL
- 图的m着色问题pascal程序
- 图的M着色问题
- 图的M着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- 图的m着色问题
- Ubuntu挂载硬盘没有执行权限的解决
- 搭建springMvc+spring+hibernate+maven开发环境003
- 排序算法之计数&基数排序
- Spring Bean装配之Autowired注解说明-2
- PYQT TIP : QSpinBox signal waits for return key to be pressed
- 图的m着色问题ACC PASCAL
- hive常用命令
- mfc z 次序
- 设备驱动---第二课(字符型设备)
- Vim入门教程(1)
- 一名弱校ACMer的感悟
- [模板]堆
- Shell--流程控制
- Oracle优化01-引起数据库性能问题的因素