文章分类 -  acm图论-图的连通性

hdu4635 非强连通图最多加多少条边使仍然是强连通图 :tarjan缩点
摘要:在纸上画一下可以发现,最终可以加成两部分强连通,然后一部分->另一部分thinking所以就可以利用tarjan来缩点,然后找一个强连通分量使他的入度或者出度为0,可以加到边数为x1*(x1-1)+x2*(x2-1)+x1*x2,减去m就是能加的边选取最大的==-------------------... 阅读全文

posted @ 2015-05-09 04:07 xiao_xin 阅读(398) 评论(0) 推荐(0)

hdu3836 有向图最少加多少边使强联通/缩点
摘要:题意比较抽象,说两个集合相等判定是A是B子集且B是A子集,然后给你m个集合关系,表示第一个是第二个的子集,问至少添加多少个关系使所有集合想等把集合想象成点,就变成了:n个点m条有向边,最少加多少条边使只有一个强联通分量思路:先tarjan缩点,然后从出度为0的点向入度为0的点连边,然后其实就是max... 阅读全文

posted @ 2015-04-29 15:51 xiao_xin 阅读(328) 评论(0) 推荐(0)

hdu4685 n个男生m个女生问男生可以娶哪些女生使最大匹配数不改变:二分图匹配/tarjan
摘要:(男生喜欢特定的女生,女生可以嫁给任何男生=先按题意求出最大匹配,然后在左边增加n-res个虚拟男生喜欢所有女生,m-res个虚拟女生喜欢所有男生,再求最大匹配,这个时候肯定是个完全匹配,求匹配只是确定新的二分图里面每个男生对应的女生是谁=在所有女生女生里面建有向图,将某男生匹配的女生连向所有他喜欢... 阅读全文

posted @ 2015-04-08 19:24 xiao_xin 阅读(357) 评论(0) 推荐(0)

hdu1827 有向图的强连通分量/缩点-tarjan
摘要:很明显缩完点之后入度为0的点是必须要通知的,也仅需要通知入度为0的点==其实第二个邻接表是不用的,只用统计into数组即可 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 stacks; 7 int Now,H... 阅读全文

posted @ 2015-04-07 16:59 xiao_xin 阅读(113) 评论(0) 推荐(0)

hdu1269 有向图强连通分量 模板
摘要:额裸的强连通,判断是不是一个强连通分量== 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 stacks; 7 int Now,dfs_clock,scc_cnt,Head[200005],Next[20000... 阅读全文

posted @ 2015-04-07 12:57 xiao_xin 阅读(132) 评论(0) 推荐(0)

hdu4612 在无向图中加一条边使桥最少 :tarjan预处理求桥/缩点/树直径
摘要:很显然加在缩点后的树直径首尾可以最大限度减少桥的数量==所以就是个无向图tarjan求桥和bfs求树直径裸题了明天继续看TUT 1 #pragma comment(linker,"/STACk:10240000,10240000") 2 #include 3 #include 4 #incl... 阅读全文

posted @ 2015-04-02 00:50 xiao_xin 阅读(162) 评论(0) 推荐(0)

hdu2460 tarjan无向图边双连通分量(桥)+lca
摘要:题意需要求出每加一条边求出桥的数目,因为询问数不多,所以可以在tarjan预处理之后在每个询问后面暴力查询lca=和有向图强连通分量差不多,反正都是tarjan搞的TUThdu又需要手动扩栈== 1 #pragma comment(linker,"/STACk:10240000,10240000")... 阅读全文

posted @ 2015-04-01 18:56 xiao_xin 阅读(147) 评论(0) 推荐(0)

poj2762 Going from u to v or from v to u? (tarjan求有向图强联通分量/缩点)
摘要:本来准备回去了,想想看了一晚上,还是过一个模板题吧==这题比赛时候其实就有思路了,就是将强连通分量缩点成一个DAG,然后判断是否成一条链,会个tarjan就是裸题啊==不说了图论实在太弱,tarjan竟然刚学,放个模板明天继续学图论= 1 #include 2 #include 3 #include... 阅读全文

posted @ 2015-03-31 01:36 xiao_xin 阅读(134) 评论(0) 推荐(0)

hdu3313 求有向图s到t割点
摘要:首先spfa(思考dijkstra不够==)找一条最短路,若不存在,则n个点都符合。从s进行dfs,找到能到达的最短路上的最远点,这个点就是割点。然后下次以这个为起点dfs,直到找到t。 1 #include 2 #include 3 #include 4 #include 5 #define IN... 阅读全文

posted @ 2014-12-29 00:16 xiao_xin 阅读(421) 评论(0) 推荐(0)

导航