题解: 如果是一个环,那么就是每个点都要 否则就是一个数 然后dp tarjan强连通+树形dp 代码: ...
分类:
其他好文 时间:
2017-10-28 12:53:26
阅读次数:
124
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e4+5; 4 int cmp[N],dfn[N],tot,n,m;// dfn为节点的时间戳 5 bool vis[N]; 6 stack<int> st; 7 vect ...
分类:
编程语言 时间:
2017-10-27 20:35:34
阅读次数:
220
tarjan算法详解直通车 什么是缩点? 当我们在求出强连通分量之后,我们可以把同一个强连通分量里的点当成新图里的一个新点,然后如果原图中两个不在同一个强连通分量的点有连边的话,那么他们所对应的新点也有连边。 我们可以知道,新图一定是一个有向无环图(DAG)。 P3387 【模板】缩点 题目背景 缩 ...
分类:
其他好文 时间:
2017-10-25 23:51:59
阅读次数:
270
1、连通分量 与 强连通分量 在无向图中,如果从顶点 vi 到顶点 vj 有路径,则称 vi 和 vj 连通. 如果图中任意两个顶点之间都连通,则称该图为连通图,否则,将其中的较大连通子图称为连通分量. 在有向图中,如果对于每一对顶点 vi 和 vj ,从 vi 到 vj 和从 vj 到 vi 都有 ...
分类:
其他好文 时间:
2017-10-20 11:54:42
阅读次数:
176
题目描述 Siruseri 城中的道路都是单向的。不同的道路由路口连接。按照法律的规定, 在每个路口都设立了一个 Siruseri 银行的 ATM 取款机。令人奇怪的是,Siruseri 的酒吧也都设在路口,虽然并不是每个路口都设有酒吧。 Banditji 计划实施 Siruseri 有史以来最惊天 ...
题意: 曹操有N个岛,这些岛用M座桥连接起来,每座桥有士兵把守(也可能没有),周瑜想让这N个岛不连通,但只能炸掉一座桥,并且炸掉一座桥需要派出不小于守桥士兵数的人去,桥的守兵数为0时,也需要派出一个人去炸桥。 思路: 首先判断图是否连通,不连通则不需要去炸桥,输出0。图连通,则可以用Tarjan找割 ...
分类:
其他好文 时间:
2017-10-14 17:07:01
阅读次数:
191
题意: 有n个王子和m个公主,每个王子都会喜欢若干个公主,也就是王子只跟自己喜欢的公主结婚,公主就比较悲惨, 跟谁结婚都行。然后输出王子可能的结婚对象,必须保证王子与任意这些对象中的一个结婚,都不会影响到剩余的王子的配对数,也就是不能让剩余的王子中突然有一个人没婚可结了。 思路: 对每个没有匹配的公 ...
分类:
其他好文 时间:
2017-10-13 19:00:25
阅读次数:
114
建有向图,男生向喜欢的女生建边,女生向国师给的最大匹配的男生建边,因为男生数等于女生数,所以如果可以存在x1娶y2使最大匹配数不变的话,那么x2也可以娶y1,这样就能成环,多对男女也一样 ...
分类:
其他好文 时间:
2017-10-13 12:34:01
阅读次数:
160
如果A认为B是受欢迎的,B认为C是受欢迎的,C认为A是受欢迎的,这时形成了一个环。 这时如果A认为D是受欢迎的,那么B和C也认为D是受欢迎的。 于是要考虑缩点。为了好打邻接表用了vector代替。推荐用Tarjan或者Gabow算法。 缩点完最终只有可能有一个强连通分量的牛被全部牛认为是受欢迎的,或 ...
分类:
其他好文 时间:
2017-10-12 20:33:03
阅读次数:
190
Description 要使两个集合 A,B 是等效的,我们可以先让 A 成为 B 的子集,然后再让 B 成为 A 的子集,这样就完成了。使用上面的方法,我们要让 N 个集合都等效:每一步,你可以让集合 X 成为 Y 的子集。注意,有一些集合是已经是其他集合的子集了。求操作最少需要经过多少步? In ...
分类:
其他好文 时间:
2017-10-12 15:40:22
阅读次数:
108