Gravatar
HXF
积分:7062
提交:1299 / 2743

  通常的染色问题是NPC问题,但此题多了m−n<=5的限制,可以将图的大小缩小来解决。将问题拓展为:每条边有两个权值,分别表示两个点同色、不同色时的权值,而一张图染色后的权值就是每条边的权值之积。这样对应原问题时,每条边同色时的权值为0,异色时的权值为1。拓展后的问题可以进行“消点”操作,具体如下:

  • 度数为1的点可以直接删除,并在最终的答案上乘上k−1.

  • 对于度数为2的点,设这个点连向a和b,则可以删除这个点并在a和b之间连一条边,讨论这个点的颜色来决定这个点的权值。具体如下:

    – 如果a和b同色,则有一种情况是这个点与a与b均同色,k−1种情况是这个点与a与b均不同色;

    – 如果a和b不同色,则有k−2种情况是这个点与a与b均不同色,一种情况与a同色,一种情况与b同色。

根据以上规则即可算出新连的边的权值,使得新图与原图等价。

  新图中不会包含度数小于等于2的点,因此新图中的点数n与边数m满足3n≤2m,又因为m−n≤5,所以n≤10且m≤15.

  随后用状态压缩dp进行子集转移即可在O(nm3^n) 的时间内求出新图的权值。


题目4253  染色问题      2      1 条 评论
2026-01-17 14:02:42