华为OD机试300题大纲
参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。
华为 OD 清单查看地址:blog.youkuaiyun.com/hihell/category_12199275.html
华为OD详细说明:https://dream.blog.youkuaiyun.com/article/details/128980730
本篇题解:无向图染色问题 or 红黑图
题目描述
众所周知红黑树是一种平衡树,它最突出的特性就是不能有两个相邻的红色节点。
那我们定义一个红黑图,也就是一张无向图中,每个节点可能有红黑两种颜色,但我们必须保证没有两个相邻的红色节点。
现在给出一张未染色的图,只能染红黑两色,问总共有多少种染色方案使得它成为一个红黑图。
输入描述
第一行两个数字 n m,表示图中有 n 个节点和 m 条边。
接下来共计 m 行,每行两个数字 s t,表示一条连接节点 s 和节点 t 的边,节点编号为[0,n)。
输出描述
一个数字表示总的染色方案数。
说明
0 < n < 15
0 <= m <= n * 3
0 <= s, t < n
不保证图连通
保证没有重边和自环
示例一
输入
3 3
0 1
0 2
1 2
输出
4
示例二
输入
4 3
0 1
1 2
2 3
输出
8