随笔分类 -  图论—tarjan

摘要:首先最直观的,列一排是罪犯一排不是罪犯,对于一个条件u说v(0是1否)f罪犯,如果u不是,那么vf罪犯;如果u是,枚举他说谎的一条wg罪犯,令w(g^1)罪犯连其他条的vf 但是这样有个电度数方,会炸 考虑前缀和优化建图,在原来两排下面再接上两排表示这个人说这条以及这条之前没有/有说过谎,pr[u] 阅读全文
posted @ 2019-05-01 21:29 lokiii 阅读(336) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-03-15 21:54 lokiii 阅读(6) 评论(0) 推荐(0)
摘要:圆方树不仅能解决仙人掌问题(虽然我仙人掌问题也没用过圆方树都是瞎搞过去的),还可以解决一般图的问题 一般图问题在于缩完环不是一棵树,所以就缩点双(包括双向边) 每个方点存他所在点双内除根以外的点的最小权值,这样的好处是更新原点的时候不用更新它一圈的方点,只更新父亲即可 树剖维护,然后查的时候如果lc 阅读全文
posted @ 2019-02-28 21:26 lokiii 阅读(166) 评论(0) 推荐(0)
摘要:本来想先求出点双再一个一个处理结果写了很长发现太麻烦 设f[u]为u点向下的最长链 就是再tarjan的过程中,先照常处理,用最长儿子链和次长儿子链更新按ans,然后处理以这个点为根的环,也就是这个点是dfs第一次到这个环访问到的点 环用来更新ans的是儿子链+到根的一段,这个直接for一边就行,还 阅读全文
posted @ 2019-02-28 11:56 lokiii 阅读(160) 评论(0) 推荐(0)
摘要:振り返り方、教えて頂戴よ 阅读全文
posted @ 2018-11-19 15:29 lokiii 阅读(149) 评论(0) 推荐(0)
摘要:举手招云入怀袖 南岳既立我则来游 阅读全文
posted @ 2018-11-19 08:45 lokiii 阅读(101) 评论(0) 推荐(0)
摘要:ねえ、あいをさけぶのなら あたしはここにいるよ 阅读全文
posted @ 2018-11-18 22:01 lokiii 阅读(164) 评论(0) 推荐(0)
摘要:梧桐顶凤有尖爪利吻而不施 冲碧霄一鸣则群禽皆飞至 阅读全文
posted @ 2018-11-18 18:43 lokiii 阅读(186) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-10-23 19:17 lokiii 阅读(2) 评论(0) 推荐(0)
摘要:あなたと迎えたい明日のために 涙を隠しては 阅读全文
posted @ 2018-10-15 20:21 lokiii 阅读(227) 评论(0) 推荐(0)
摘要:Generals order their soldiers to kill And to fight for a cause they've long ago forgotten 阅读全文
posted @ 2018-09-24 09:17 lokiii 阅读(194) 评论(0) 推荐(0)
摘要:没看太懂题意orz 最优的是tarjan缩点之后问入度为0的点,因为问这个点可以知道整个块的情况 答案是这ans个入度为0的点都不是杀手的概率\\( \frac{n ans}{n} \\) 但是有特殊情况就是size为1的单独scc,这是ans ,因为其他点确定之后这个点就确定了 cpp inclu 阅读全文
posted @ 2018-09-22 17:34 lokiii 阅读(166) 评论(0) 推荐(0)
摘要:先tarjan缩成DAG,然后答案就变成了最长链,dp的同时计数即可 就是题面太唬人了,没反应过来 阅读全文
posted @ 2018-07-31 19:21 lokiii 阅读(160) 评论(0) 推荐(0)
摘要:先tarjan找割点和点双连通分量,然后对一个点双,如果没有割点,那么需要建立两个出口(割掉一个另一个备用);如果只有一个割点,出口可以设立在任意一个非割点的地方;如果有两个及以上个割点,就不用建出口(可以直接到达其他联通块) cpp include include include using na 阅读全文
posted @ 2018-07-29 14:23 lokiii 阅读(151) 评论(0) 推荐(0)
摘要:一眼最大权闭合子图,然后开始构图,画了画之后发现~~我其实是个智障~~网络流满足不了m,于是发现正确的打开方式应该是一眼树上dp 然后仔细看了看性质,发现把依赖关系建成图之后是个奇环森林,这个显然不能直接dp 发现这个环要选的话只能选整个环,所以tarjan缩一下点,然后再跑树上背包就行了 cpp 阅读全文
posted @ 2018-07-28 20:40 lokiii 阅读(117) 评论(0) 推荐(0)
摘要:首先转换图论模型,把某个客户一个终端的维修时间(+1)%h之后和另一个终端维修时间一样,这样的两个终端连一条有向边,表示推后一个终端就必须推后另一个 然后tarjan缩点,一个scc里的终端是要一起推迟的,scc内点数为新图点权 根据贪心的思想,在缩完点的DAG里,一定是出度为0的点能获得更小的值, 阅读全文
posted @ 2018-07-07 23:10 lokiii 阅读(353) 评论(0) 推荐(0)
摘要:首先认识一下01邻接矩阵k次幂的意义:经过k条边(x,y)之间的路径条数 所以可以把矩阵当成邻接矩阵,全是 0的话意味着两两之间都能相连,也就是整个都要在一个强连通分量里,所以直接tarjan染色,如果只有一个色块的话就是YES否则都是NO(其实应该能更简单一些,不过tarjan比较顺手) 还有就是 阅读全文
posted @ 2018-07-07 13:44 lokiii 阅读(335) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-07-03 11:00 lokiii 阅读(6) 评论(0) 推荐(1)
摘要:几乎是板子,求有几个size 1的scc 直接tarjan即可 cpp include include include using namespace std; const int N=10005; int n,m,h[N],cnt,ans,tmp,dfn[N],low[N],s[N],top; b 阅读全文
posted @ 2018-05-09 17:32 lokiii 阅读(170) 评论(0) 推荐(0)
摘要:首先来分析一下,这是一张无向图,要求没有两条路联通的点对个数 有两条路连通,无向图,也就是说,问题转化为不在一个点双连通分量里的点对个数 tarjan即可,和求scc还不太一样…… cpp include include using namespace std; const int N=5005; 阅读全文
posted @ 2018-05-09 14:40 lokiii 阅读(137) 评论(0) 推荐(0)