题目如下:
Bicoloring |
Here you are asked to solve a simpler similar problem. Youhave to decide whether a given arbitrary connected graph can be bicolored.That is, if one can assign colors (from a palette of two) to the nodes in sucha way that no two adjacent nodes have the same color. To simplify the problemyou can assume:
An input with n = 0 will mark the end of the input and isnot to be processed.
3 3 0 1 1 2 2 0 9 8 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0
NOT BICOLORABLE. BICOLORABLE.
问是否可以用两种颜色将一个无向强联通图染色,其实可以转化为这个图是否是二分图。二分图的充要条件是图中的每个圈都是偶数,所以用DFS找出图中每个圈的长度,再判断是否是偶数,值得注意的是vis标记数组不应该标记节点,因为节点可能访问多次,而应该为二维数组标记边,在找圈过程中边是不能重复遍历的,1A。
AC的代码如下:
UVA 10004 Bicoloring,布布扣,bubuko.com
原文地址:http://blog.csdn.net/u013840081/article/details/36885971