Codeforces gym 102956 J. Burnished Security Updates (二分图染色)
链接:J. Burnished Security Updates
题意:
给你一个图 n 个点 m 条边(不一定联通),要求对图上的点染色,使得每条边有且只有一个端点被染色。求最少需要对多少个点染色才能达到要求,若没有答案输出 - 1.
思路:
先判断图是不是二分图,若不是则输出 - 1,否则选择染色数量小的颜色,注意图不连通,对每个块取较小颜色即可。
二分图染色 即直接 dfs 对相邻的点染不同的颜色,若出现矛盾则不是二分图,否则最后找到颜色数量少的颜色即可。
代码:
#include<bits
原创
2021-03-09 20:53:59 ·
276 阅读 ·
0 评论