POJ1112 Team Them Up! 连通图 染色 DP

来源:互联网 发布:网络热门歌曲 编辑:程序博客网 时间:2024/05/29 06:36

思路:

1.本题数据是单向边,说明是有向图,但是其实分析题目,要求是互相认识,

则单向边需要处理成无边,即有向图处理成无向图。

2.求补集。

然后求极大联通分量,在同一个连通分量里的两个人都是互相不认识。

在不同连通分量里的两个人互相认识。

3.

用dfs求联通分量,同时01染色,相邻的点颜色不同。

因为在同一个连通分量里的人都互相不认识,

即我们应该将这个联通分量里的人染色成二分图(x,y),以便于分配到不同的队伍里。

(染色成二分图是为了使之满足题意的两个队伍之间人数最close)。

4.判定no solution情况

二分图xy里,x或者y组里的任意两个人如果在补集里面有边,

则输出"No solution"。(我的理解是无法染色)

原因是这时没办法分成两个队伍,起码要三个队伍。

举例是三个人。 A---B---C----A.形成一个环。则无法染色。A 0 B 1 C 0 A 1(矛盾)。

5.

DP(01背包DP).

上面说的只是对于一个连通分量的处理。

现在 需要用DP思想处理每个连通分量。

关于DP,接触的题目不多,这道题的DP就纠结了。

暂且到这吧。

参考自:

http://hi.baidu.com/z917912363/blog/item/fa54b21f1a21f8c3ac6e755e.html

原创粉丝点击