AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3813. 无向图染色

中等通过率 85% · 提交 98 · 通过 83
回溯图论枚举

给一个无向图染色,可以填红黑两种颜色,必须保证相邻两个节点不能同时为红色,输出有多少种不同的染色方案?

输入描述

第一行输入M(图中节点数) N(边数) 后续N行格式为:V1 V2表示一个V1到V2的边。 数据范围:1 <= M <= 15, 0 <= N <= M * 3,不能保证所有节点都是连通的。

输出描述

输出一个数字表示染色方案的个数。

示例

示例 1

输入

4 4
1 2
2 4
3 4
1 3

输出

7

说明:4个节点,4条边,1号节点和2号节点相连, 2号节点和4号节点相连,3号节点和4号节点相连, 1号节点和3号节点相连, 若想必须保证相邻两个节点不能同时为红色,总共7种方案。

示例 2

输入

3 3
1 2
1 3
2 3

输出

4

时间限制 1000 ms · 内存限制 128 MB

写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「无向图染色」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。