码迷,mamicode.com
首页 > 其他好文 > 详细

关于弦图一些问题的解法

时间:2017-06-06 23:36:50      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:org   empty   code   独立   依次   for   back   style   bsp   

完美消除序列($MCS$算法):

每个点记录一个势,表示与它相邻的已经在完美消除序列的点的个数。

先把$n$号点弄出来,然后每次把势最大的弄出来,这样依次求出的点的逆序就是完美消除序列,使用链表或动态数组可以让复杂度降至$O(n)$

 

代码: 

1 for (RG int i=1;i<=n;++i) ep[0].push_back(i);
2 for (RG int i=n,now;i;--i){
3     while (1){
4     now=ep[best].back(); if (!l[now]) break;
5     ep[best].pop_back(); while (ep[best].empty()) --best;
6     }
7     l[now]=i,p[i]=now;
8  }

 

最小染色:求出完美消除序列以后逆序把当前点设一个与相邻点都不同的颜色。

最大独立集:求出完美消除序列以后从前往后能选则选。

最小团覆盖:最大独立集=最小团覆盖。

极大团:还没看懂。。

区间图和完美图以后再补。。

关于弦图一些问题的解法

标签:org   empty   code   独立   依次   for   back   style   bsp   

原文地址:http://www.cnblogs.com/wfj2048/p/6953747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!