上一页 1 ··· 75 76 77 78 79 80 81 82 83 ··· 87 下一页
摘要: 1、求补全强连通分量所需的边。。。(max(入度为0的边的个数, 出度为0的边的个数)) 2、无向图求割顶的个数 3、无向图求桥。。(可以用强连通分量的代码 sccno[u] != sccno[v] 的即为桥 或者用求割顶的代码 lowv > pre[u] 的即为桥) 4、连一条明确的边后剩余的桥的 阅读全文
posted @ 2018-07-14 10:23 WTSRUVF 阅读(566) 评论(0) 推荐(0)
摘要: 建图:王子u喜欢女孩v,则u到v连一条边。对于给出的初始完美匹配,王子u与女孩v匹配,则v到u连一条边。然后求SCC。 显然对于同一个SCC中王子数目和女孩数目是相等的,并且从某个王子出发能够到达所有女孩,这样,王子可以和属于同一个SCC中的任意一个女孩结婚,而不会影响其他王子。 #include 阅读全文
posted @ 2018-07-13 23:31 WTSRUVF 阅读(204) 评论(0) 推荐(0)
摘要: 求在图中新建一条边后 剩下的最少的桥的数量。。先tarjan求桥的数量。。然后缩点。。以连通分量为点建图 bfs求直径 最后用桥的数量减去直径即为答案 bfs求直径 https://www.cnblogs.com/WTSRUVF/p/9307517.html #include <iostream> 阅读全文
posted @ 2018-07-13 21:41 WTSRUVF 阅读(159) 评论(0) 推荐(0)
摘要: 两遍bfs即可 分析:一开始任取一个点u进行搜索查找出距离点u最远距离的点v和长度 第二次dfs则从第一次中的v找出距离点v最远距离的点的路径长度 阅读全文
posted @ 2018-07-13 21:39 WTSRUVF 阅读(227) 评论(0) 推荐(0)
摘要: G(i) = (gcd(1, i) + gcd(2, i) + gcd(3, i) + .....+ gcd(i-1, i)) ret = G(1) + G(2) + G(3) +.....+ G(n); 对于gcd(x,i),我们设gcd(x,i) = m 即x和i的最大公约数为m 则x/m 和 阅读全文
posted @ 2018-07-13 17:46 WTSRUVF 阅读(199) 评论(0) 推荐(0)
摘要: 想法一: 找出强联通块,计算每个连通块内的点数。将点数最少的那个连通块单独拿出来,其余的连通块合并成一个连通分量。 那么假设第一个连通块的 点数是 x 第二个连通块的点数是 y 一个【强】连通图最多(每两个点之间,至少存在一条课互相到达的路径)的边数为n*(n-1) 一个连通图的边数至少为n*(n- 阅读全文
posted @ 2018-07-13 14:30 WTSRUVF 阅读(306) 评论(0) 推荐(0)
摘要: 题意: 在图中加边 看最少能通过加多少条边把 图变成边—双连通分量 解析: 先做一次dfs,不同的连通分量的low是不同的 注意重边 缩点 统计度为1的点 那么需要加的边为(ret+1)/2 阅读全文
posted @ 2018-07-13 12:25 WTSRUVF 阅读(212) 评论(0) 推荐(0)
摘要: 就是求出原先图中的桥的数量,在每一次询问时加入一条新边,求加入当前边后图中剩余的桥的数量 求出原先图中的桥的数量,然后减去新加入边的两端点之间的桥的数量,就是剩余桥的数量。。 用并查集把属于同一集合的放到一起(即两个点之间没有桥的) 阅读全文
posted @ 2018-07-12 23:59 WTSRUVF 阅读(844) 评论(0) 推荐(0)
摘要: 有上述两个数组定义可知:对于某点root,其有一儿子v,则有: 1. 如果dfn[root]<=low[v]此点是割点(对于dfs树的根,即最初节点需要两个儿子才是割点) 2. 如果dfn[root]<low[v],连接root与v的边是桥。 阅读全文
posted @ 2018-07-12 21:56 WTSRUVF 阅读(222) 评论(0) 推荐(0)
摘要: 题目大意 有N个学校,这些学校之间用一些单向边连接,若学校A连接到学校B(B不一定连接到A),那么给学校A发一套软件,则学校B也可以获得。现给出学校之间的连接关系,求出至少给几个学校分发软件,才能使得所有的学校均可以获得软件;以及,至少需要添加几条单向边连接学校,才能使得给这些学校中任何一所发软件, 阅读全文
posted @ 2018-07-12 18:41 WTSRUVF 阅读(206) 评论(0) 推荐(0)
上一页 1 ··· 75 76 77 78 79 80 81 82 83 ··· 87 下一页