随笔分类 -  强连通分量

摘要:题目链接 https://vjudge.net/contest/240074#overview 只写一下自己做的几个题吧 阅读全文
posted @ 2018-07-26 19:36 一入OI深似海 阅读(177) 评论(0) 推荐(0)
摘要:/* codevs 1996 连通性问题 Tarjan+割点 可以感性的想一想 一定炸割点最好 否则 没有什么影响 先求出割点来 对于剩下的点们 缩一下 当然不能包括割点 这里的缩 因为删了割点就不是纯粹的双连通分量了 所以Dfs缩点 不走割点 然后这张图就成了一些被割点分开的联通块 如果一个块块连着两个割点 那么这里面就不用建 因为一边的炸了可以走另一边 相对的如果这个块块只连着一个割点那... 阅读全文
posted @ 2016-11-08 11:30 一入OI深似海 阅读(492) 评论(0) 推荐(0)
摘要:enc【问题背景】zhx 和他的妹子聊天。【问题描述】考虑一种简单的加密算法。假定所有句子都由小写英文字母构成,对于每一个字母,我们将它唯一地映射到另一个字母。例如考虑映射规则:a->b, b->c, c->d, d->a. 那么单词 bad 就会被映射为 cba。这个映射规则的“逆映射规则”为: 阅读全文
posted @ 2016-10-26 16:30 一入OI深似海 阅读(415) 评论(0) 推荐(0)
摘要:比赛链接https://www.luogu.org/contest/show?tid=1084(md找不到超链接2333) 阅读全文
posted @ 2016-10-22 08:19 一入OI深似海 阅读(261) 评论(0) 推荐(1)
摘要:/* hdu 1599 ( find the mincost route ) Floyed求最小环 每个环一定是 由 i j k 构成 假设k是环中的max 要成环 就要保证不是链(md废话) 利用Floyed的最外层循环含义 i-j最短路经过的点编号=3 因为i j k 互不相同 */ #include #include #include #define maxn 110 #defi... 阅读全文
posted @ 2016-10-14 22:22 一入OI深似海 阅读(324) 评论(0) 推荐(0)
摘要:/* Tarjan求割点 */ #include #include #include #include #define maxn 10010 using namespace std; int n,m,num,head[maxn],low[maxn],dfn[maxn],f[maxn],father[maxn]; int point[maxn],topt,sum; struct node{ ... 阅读全文
posted @ 2016-09-04 16:29 一入OI深似海 阅读(169) 评论(0) 推荐(0)
摘要:/*每个环 要么不选 要么全选 可缩点 就得到一个GAD图 然后搞搞算出最大路径*/ #include #include #include #define maxn 100010 using namespace std; int T,n,m,num,head[maxn],low[maxn],dfn[maxn],s[maxn],top,vi[maxn]; int sum,belong[maxn],... 阅读全文
posted @ 2016-08-24 09:16 一入OI深似海 阅读(248) 评论(0) 推荐(0)
摘要:/*哈哈我Tarjan套lca.. 丫输出case啥的没看见...*/ #include #include #include #define maxn 300010 using namespace std; int n,m,num,head[maxn],low[maxn],dfn[maxn],topt; int s[maxn],top,f[maxn],sum,belong[maxn],cnt,c... 阅读全文
posted @ 2016-08-24 06:48 一入OI深似海 阅读(145) 评论(0) 推荐(0)
摘要:/*重边不能删 不能删 不能删...*/ #include #include #include #define maxn 10010 using namespace std; int n,m,num,head[maxn],low[maxn],dfn[maxn],topt; int top,s[maxn],f[maxn],ans,sum,belong[maxn],r[maxn]; struct n... 阅读全文
posted @ 2016-08-24 06:28 一入OI深似海 阅读(332) 评论(0) 推荐(0)
摘要:/* Tarjan缩点之后 强联通分量建图 统计每个强联通分量的出入度 第一问就是入度为0的 强联通分量的个数 第二问 为了高效的使每个强联通分量都有出入度 要把出度为零的强联通分量连到入度为零的点上 这样得到的边数是最少的 ans2并不是桥的数目 这样不是最少..... */ #include #include #include #define maxn 110 #define maxm ... 阅读全文
posted @ 2016-05-15 08:58 一入OI深似海 阅读(175) 评论(0) 推荐(0)
摘要:/* Tanjar缩点后 记好每个点属于第几个强联通分量 然后维护nu数组表示每个强联通分量的出度为几(枚举割边) 只要某个强联通分量有出度而没有入度 说明并不是多有牛都认为这里面的牛牛 最后找nu为零的唯一一个强联通分量 如果有好几个nu为零的 依旧没有符合条件的牛 即图并不连通 */ #include #include #include #define maxn 50010 usin... 阅读全文
posted @ 2016-05-12 22:12 一入OI深似海 阅读(141) 评论(0) 推荐(0)
摘要:不想吐槽题目..../* K bulabula 算法(好像用哪个T bulabula更简单 然而我并不会 - -) 丑陋的处理cnt: Printf时 cnt中 ans[i][0]==1 的删掉 然后更丑陋的处理强连通分量的出度 : 先把所包含的所有点f 成1 然后以每个点为起点跑一边 看看是不是出度指向本连通分量内的点 */ #include #include #include #incl... 阅读全文
posted @ 2016-04-19 15:29 一入OI深似海 阅读(198) 评论(0) 推荐(0)
摘要:- - - - - - - -一个()打成[] 看了一晚上...../* 求强连通分量 kosaraju算法 边表存图 正反构造两个图 跑两边 分别记下入栈顺序 和每个强连通分量的具体信息 */ #include #include #include #include #define maxn 1010 #define maxx 10010 using namespace std;... 阅读全文
posted @ 2016-04-18 21:46 一入OI深似海 阅读(232) 评论(0) 推荐(0)