题意:给定一个有向图,寻找一个点数最大集合,使得这个集合中的任意两个点 u,v, 都有u->v 或者 v->u 或者uv 思路:首先将强连通分量通过tarjan算法求出来,然后进行缩点,也就是每一个缩点 所组成的图就是一个DAG图!令每一个点的权值就是这个缩点所包含节点(也就是对应的 强连通分量的....
分类:
其他好文 时间:
2014-10-11 23:18:06
阅读次数:
393
题目大意:给定一张有向图,每个点有且仅有一条出边,要求若一个点x扔下去,至少存在一个保留的点y,y的出边指向x,求最多扔下去多少个点
首先原题的意思就是支配关系 我们反向考虑 求最少保留的点 要求一个点若扔出去 则必须存在一个保留的点指向它
于是这就是最小支配集 不过由于是有向图 所以一个点要么选择 要么被子节点支配 所以就只剩下2个状态了
设f[x]为以x为根的子树选择x的最小支配集 g[...
分类:
其他好文 时间:
2014-10-10 20:35:24
阅读次数:
223
题目大意:有一些骑士,他们每个人都有一个权值。但是由于一些问题,每一个骑士都特别讨厌另一个骑士。所以不能把他们安排在一起。求这些骑士所组成的编队的最大权值和是多少。
思路:首先貌似是有向图的样子,但是一个人讨厌另一个人,他们两个就不能在一起,所以边可以看成是无向的。
n个点,n条无向边,好像是一颗基环树。但其实这是一个基环树林,因为题中并没有说保证图一定联通。
然后就可以深搜了,处理...
分类:
其他好文 时间:
2014-10-08 17:19:05
阅读次数:
265
题意:有n个点和m条有向边,现在要在点上放一些伞兵,伞兵可以沿着图走,
直到不能走为止,每条边有且仅有一个伞兵走过,问最少放多少个伞兵
思路:求的最小路径覆盖,用二分图来做
对于这样的一个有向图做最小路径覆盖,首先建图
然后每一条有向边对应左边的点指向右边的点
这样建好图之后求最大匹配数
最小路径覆盖=点数-最大匹配数...
分类:
其他好文 时间:
2014-10-07 13:06:13
阅读次数:
204
题目:统计一个有向图中,给定起点不能到达的点。
分析:图论,搜索。直接利用dfs遍历即可。
说明:起始点开始属于未被遍历的点,注意初始化数据。
#include
#include
#include
using namespace std;
int maps[110][110];
int used[110];
void dfs(int s, int n)
{
for (int i...
分类:
其他好文 时间:
2014-10-07 12:31:53
阅读次数:
173
Hard Life
做该题前需要先了解一些专有名词及定理。
希望你可以亲自看看2007年胡伯涛的论文!
有向图的闭合图(closure): 闭合图内任意点的任意后继也一定还在闭合图中。
题目:
给出N个人,有些人之间有联系,而有联系的两个人被认为是一个整体。如果,把人看作点,把关系看作边,则要求你求出 边 / 点 的比值最大。而这些点边之间必须是一个闭合图。...
分类:
其他好文 时间:
2014-10-04 17:58:16
阅读次数:
220
之前稍微了解有向图、无向图、混合图的欧拉通路、欧拉回路,这里做下笔记,以便日后翻阅。无向图:存在欧拉回路的条件:原图连通,每个结点均为偶度结点。存在欧拉通路的条件:存在欧拉回路,或原图连通,有两个结点为奇度结点,其他结点均为偶度结点。有向图:存在欧拉回路的条件:基图连通,每个结点的入度等于出度。存在...
分类:
其他好文 时间:
2014-10-04 01:23:45
阅读次数:
361
题目链接
题意:给定一张有向图,问最少选择几个点能遍历全图,以及最少添加几条边使得有向图成为一个强连通图。
思路:对于有向图而言,首先求出有几个强连通分量,之后将每个强连通分量缩点,形成DAG,本题开头第一句就说图是连通的了。之后想要遍历整张图的话,只要找出入度为0的点有几个,而添加边的数量就取决于所有点的出入度大小。
代码:
#include
#include ...
分类:
Web程序 时间:
2014-10-03 17:10:14
阅读次数:
225
题意:给一个由N个点组成的一张有向图,不存在环。点的编号是0~N-1。然后给出M个棋子所在的位置(点的编号)【一个点上可同时有多个棋子】。每人每次可移动M个棋子中的一个棋子一步,移动方向是有向边指向的方向。最后无法移动棋子的人输。思路:一眼就可看出的裸的SG,直接看代码吧。代码:int sg[100...
分类:
其他好文 时间:
2014-10-03 14:12:14
阅读次数:
188
求强连通分量要用到时间戳的概念算了 直接给模板 ps:借鉴大白皮的写法 1 # include 2 # include 3 # include 4 # include 5 using namespace std; 6 const int N=100000; 7 const int M=500000;...
分类:
其他好文 时间:
2014-10-03 11:52:14
阅读次数:
213