题目链接: BZOJ - 1006题目分析这道题是一个弦图最小染色数的裸的模型。弦图的最小染色求法,先求出弦图的完美消除序列(MCS算法),再按照完美消除序列,从后向前倒着,给每个点染能染的最小颜色。求出的颜色数就是最小染色,同时也是最大团。代码#include #include #include ...
分类:
其他好文 时间:
2015-02-28 00:11:48
阅读次数:
316
给定一个弦图,问最少染色数。对于弦图的一个完美消去序列,从后往前染色,每次染可以染的最小编号的颜色,由完美消去序列的定义,序列任一后缀的点的导出子图中,由该后缀第一个元素及其邻接点导出的子图一定是完全图,所以,序列中某一元素染的颜色编号是该完全图的大小。所以最小染色数小于等于最大团的点数,而显然前者...
分类:
其他好文 时间:
2015-02-17 22:17:19
阅读次数:
245
/* fore今天挖维基百科的图论(NP问题那么多,我最爱看这个八卦了)挖了挖完全NP问题,找到了个最大团问题。这个名字有点怪,维基百科也没有相关词条,度娘是这样解释的——给定无向图G=(V,E),其中V是非空集合,称为顶点集;E是V中元素构成的无序二元组的集合,称为边集,无向图中的边均是顶点的无序...
分类:
编程语言 时间:
2014-11-17 17:12:54
阅读次数:
304
链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=25&problem=2299&mosmsg=Submission+received+with+ID+14404690
题意:一个有向图,找一个最大的点集使得任意两点u、v间都存在一条路(单向或双向)...
分类:
其他好文 时间:
2014-10-23 16:25:21
阅读次数:
205
hdu2458题意:给定G(G 3 #include 4 const int N = 222; 5 int G,B,m; 6 int Map[N][N]; 7 bool vis[N]; 8 int cx[N],cy[N]; 9 10 bool dfs(int u)11 {12 int i...
分类:
其他好文 时间:
2014-10-12 16:31:28
阅读次数:
176
Kindergarten又是一道自己没思考出来的题 !!!!!还是老样子,题目去我拉的专题里有。题目: 给出G给女孩,B给男孩。女孩之间是相互认识的,男孩之间也是相互认识的。如今题目中给出M对男女间会相互认识的关系普,要你计算出男女之间两两都认识的最大人数。算法: 一開始看到以为是最大团。囧。后.....
分类:
其他好文 时间:
2014-10-12 15:33:38
阅读次数:
310
Kindergarten
又是一道自己没思考出来的题 !!!!!
还是老样子,题目去我拉的专题里有。
题目:
给出G给女孩,B给男孩。女孩之间是相互认识的,男孩之间也是相互认识的。现在题目中给出M对男女间会相互认识的关系普,要你计算出男女之间两两都认识的最大人数。
算法:
一开始看到以为是最大团。囧。后来越想越不对啊。后来看到别人说是求解补图的问题。太深奥了。为...
分类:
其他好文 时间:
2014-10-10 19:42:14
阅读次数:
164
最大独立集 = V - 最小顶点覆盖
二分图的最小顶点覆盖数 = 最大匹配数
最大团 = 补图的最大独立集
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 200 + 10;
int n, m, s;
int map[max...
分类:
其他好文 时间:
2014-09-11 12:36:41
阅读次数:
175
点击打开链接
有向图
把强联通分量缩点后得到一个DAG,然后DP。
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 1000 + 10;
vector G[maxn];
int dfn[maxn], low[maxn], sccno...
分类:
其他好文 时间:
2014-09-11 11:13:41
阅读次数:
159
最大独立集 = 补图的最大团
最小顶点覆盖 + 最大独立集 = V
#include
#include
const int maxn =100 + 10;
int g[maxn][maxn], dp[maxn], n;
int x[maxn], ans[maxn], mx;
int dfs(int *adj, int ns, int dep) {
int t[maxn];...
分类:
其他好文 时间:
2014-09-11 11:11:11
阅读次数:
188