
强联通分量
zhhx2001
这个作者很懒,什么都没留下…
展开
-
codevs爱在心中(强联通分量,缩点,求出度为0的点)缩点模版
#include#include#includeusing namespace std;int head[100009],tot,dfn[100009],low[100009],sta[1000009],top,n,m,pre[300009],edge[300009];int size[100009],ct[100009],p[100009];int ans=0,id=0;boo原创 2016-06-27 10:48:05 · 312 阅读 · 0 评论 -
bzoj1093(强联通分量+缩点+dp记忆化搜索(算是乱搞找方法吧!))
先强连通缩点,然后重新构图,然后找出包含点数最多的链,统计个数即可,可以用拓扑排序搞~ pS:重新构图时有重边,然后导致统计方案数的重复注意缩点构图时,重边的情况处理#include#include#includeusing namespace std;const int N=100009;struct aa{ int to,w,pre;}edge原创 2016-06-27 16:50:51 · 319 阅读 · 0 评论 -
vijos1022(强联通分量模版题)
#include#include#includeusing namespace std;bool a[500][500]={false},s[500]={false};int n,low[500]={0},dfn[500]={0},sta[500009]={0},top,ans,id;void dfs(int u){ dfn[u]=low[u]=++id; sta[++top]原创 2016-06-29 07:55:14 · 328 阅读 · 0 评论 -
hdu4738(求图中的桥)
按照自己的理解写的,v【u】【v】来判是否有重边#include#include#includeusing namespace std;const int N=1009; struct aa{ int to,pre,v;}edge[1000009];int low[N],vv[N][N],cnt,dfn[N],tot,n,m,id=0,head[N],ans,fa[原创 2016-07-03 15:49:59 · 490 阅读 · 0 评论 -
poj1144(求图中割点的个数)
求图中割点的个数#include#include#include#includeusing namespace std;const int N=109;int low[N],dfn[N],id,ans,n;bool vis[N];vector g[N];void dfs(int u){ low[u]=dfn[u]=++id; int ch=0;//孩子数目 f原创 2016-07-03 16:09:45 · 777 阅读 · 0 评论 -
bzoj1179(缩点+乱搞)
很显然这道就是需要先求出强连通分量,然后缩点。缩点之后就是有向无环图了。实际上这之后,各种方法就都可以了。已知的dp:1.通过拓扑序用一个队列来进行dp,图是原先的图 2.缩点后建新图时,将图反向建。然后对于每一个酒吧,记忆话搜索,到市中心的最短路(我用的这种方法)spfa:缩点后跑spfa,求出到每一个酒吧的最长路(我不敢确定这样的复杂度,就没写这个原创 2016-09-04 13:08:10 · 342 阅读 · 0 评论 -
poj1236(强连通分量)
POJ1236一些学校通过网络连接在一起,每个学校手中有一份名单,即它所指向的点。学校A的名单中有学校B,并不能保证学校B的名单里有学校A。现在有一软件。1.问至少发给几个学校才能保证所有的学校都可以得到该软件。2.至少加几条边才能使将软件发给任何一个学校后,其他所有学校都可以得到软件。N 第一个是求缩点后,入度为0的点数;第二问是求max(入度为0原创 2016-09-04 15:35:50 · 400 阅读 · 0 评论 -
hdu1269(强联通分量模版)
注意事项在代码中#include#include#includeusing namespace std;int head[100009],tot,dfn[100009],low[100009],sta[1000009],top,n,m,pre[300009],edge[300009];int ans=0,id=0;bool s[100009],b[100009];void a原创 2016-06-27 09:11:11 · 264 阅读 · 0 评论