SCC / BCC / 割顶 / 桥
文章平均质量分 77
BraketBN
这个作者很懒,什么都没留下…
展开
-
【BZOJ1589】[Usaco2008 Dec]Trick or Treat on the Farm 采集糖果【SCC】【基环外向树】【DP】【记忆化搜索】
http://www.lydsy.com/JudgeOnline/problem.php?id=1589首先这是一个基环外向树,先tarjan缩点变成DAG,然后跑dp就行了。记忆化搜索写成了if(dp[x]) return x;一定是没睡好.../* Footprints In The Blood Soaked Snow */#include #inc原创 2016-03-18 08:49:08 · 992 阅读 · 0 评论 -
【ZOJ-2588】Burning Bridges【桥】
题意:给出一个无向图,求桥的个数和编号。注意有重边。tarjan一遍即可,参考大白书写的代码。重边的处理:每条边记录一个flag,表示当前边是否是重边(是不是单身)。注意没有桥的情况,还有输出格式。#include #include using namespace std;const int maxn = 10005, maxm原创 2016-02-26 11:38:12 · 419 阅读 · 0 评论 -
【HDU3394】Railway【BCC】【桥】
题意:n个点的无向图,求桥边个数,求属于多个环的边的个数。BCC裸题?跑一次tarjan都可以求出来啦。#include #include #include #include using namespace std;const int maxn = 10005, maxm = 100005;int n, m, head[maxn], cnt, lo原创 2016-02-26 14:59:15 · 568 阅读 · 0 评论 -
【BZOJ1123】[POI2008]BLO【割顶】
【题目链接】题意可见discuss。用Tarjan求割顶,然后对割顶的所有子树求点对个数(前缀和扫一遍),最后把自身和其他点的答案加上。没注意边,数组开小了。/* Pigonometry */#include #include using namespace std;typedef long long LL;const int maxn = 1000原创 2016-04-21 11:39:37 · 684 阅读 · 0 评论 -
【BZOJ1093】[ZJOI2007]最大半连通子图【SCC】【DAG】【DP】
【题目链接】先SCC缩点,在DAG上跑最长路,顺便统计出到达每个点的最长路的路径个数。/* Pigonometry */#include #include #include #include #include using namespace std;typedef pair pii;const int maxn = 100005, maxm = 1000005, ma原创 2016-04-29 10:18:54 · 638 阅读 · 0 评论 -
【BZOJ2772】policija【BCC】【割顶】【离线】【分治】【并查集】
【题目链接】先跑出dfs树。对于两个操作,先把不连通的情况用并查集搞掉。另外对于操作1,如果G1-G2是非树边,那么形成了环,这种情况肯定是yes。然后跑Tarjan,对每个操作形成的子树讨论一下就完了。#include /* Pigonometry */#include #include #include using namespace std;const原创 2016-04-28 15:33:20 · 578 阅读 · 0 评论 -
【BZOJ3590】[Snoi2013]Quare【双连通分量】【状压DP】【神题】
【题目链接】orz凯爷,见【Lethelody的题解】首先一个双连通图可以拆为一个小双连通图和一条链。设c[s][u][v]表示一条链的集合状态为s,链的端点分别为u和v的最短路径。设h[s][u][0/1]表示集合状态为s,不在集合s内的点u与另一个在集合s中的点的最短路径/次短路径。设f[s]表示集合状态为s,且s双联通的最小权值。c可以递推转移。h原创 2016-04-07 23:19:09 · 1303 阅读 · 0 评论 -
【BZOJ1179】[Apio2009]Atm【SCC】【最长路】
【题目链接】tarjan先缩点,然后跑个最长路。读入一个酒吧位置就更新一次答案。/* Pigonometry */#include #include #include #include #include using namespace std;typedef pair pii;const int maxn = 500005, maxs = maxn;int n,原创 2016-04-05 16:59:20 · 488 阅读 · 0 评论 -
【BZOJ2140】稳定婚姻【SCC】【二分图完备匹配】
题意:给出一个二分图完备匹配,找另一个完备匹配。竟然是SCC,和稳定婚姻并没有什么卵关系。对于原始的匹配点u, v,连接(v, u)对于可行的匹配点u, v,连接(u, v)跑一次tarjan。对于一组夫妻,如果两个人在同一个SCC里,那么是Unsafe,否则Safe。好久没敲tarjan了。#include #incl原创 2016-02-26 15:52:59 · 903 阅读 · 0 评论 -
【Uva11324】The Largest Clique【SCC】【最长路】【有向图最大团】
【题目链接】题意:有向图最大团,即选出一些点,使得任意两点u, v,要么u可以到v,要么v可以到u,也可以互达。先SCC缩点变为DAG,然后求最长路。/* Pigonometry */#include #include using namespace std;const int maxn = 1005, maxm = 50005, maxs = 10000, maxq原创 2016-04-02 11:40:44 · 460 阅读 · 0 评论 -
【BZOJ2208】[Jsoi2010]连通数【BFS/DFS】【SCC】
http://www.lydsy.com/JudgeOnline/problem.php?id=2208tarjan缩点然后dp。但是发现点数才2000...BFS可过。边数是n^2,不是n /* Footprints In The Blood Soaked Snow */#include using namespace std;const int m原创 2016-03-19 14:34:21 · 463 阅读 · 0 评论 -
【BZOJ1194】[HNOI2006]潘多拉的盒子【BFS】【SCC】【拓扑排序】【DAG最长路】【自动机】
【题目链接】这题有毒orz。判断两个自动机是否有升级关系,BFS一次就行了orz。两个自动机都从0开始,同时走0,同时走1。如果一个自动机到达输出点,而另一个没到达,那么没有升级关系。然后根据升级关系建图,Tarjan缩点,然后跑DAG上最长路就行了。注意一个强联通内都是互相有升级关系的,跑最长路时要取size而不是取1,WA了一发.../* Pigonomet原创 2016-04-23 17:15:33 · 886 阅读 · 0 评论