上一页 1 ··· 3 4 5 6 7
摘要: 在之前的博客中我们已经介绍了如何用Tarjan算法求有向图中的强连通分量,而今天我们要谈的Tarjan求桥、割点,也是和上篇有博客有类似之处的。 关于桥和割点: 桥:在一个有向图中,如果删去一条边,而后这个有向图不再联通,我们便称删去的这条边为有向图的桥。 割点:在一个有向图中,如果删去一个点,使这 阅读全文
posted @ 2018-10-11 14:35 WR_Eternity 阅读(437) 评论(0) 推荐(0)
摘要: 倍增这种东西,听起来挺高级,其实功能还没有线段树强大。线段树支持修改、查询,而倍增却不能支持修改,但是代码比线段树简单得多,而且当倍增这种思想被应用到树上时,它的价值就跟坐火箭一样,噌噌噌地往上涨。 关于倍增思想: 倍增的思想很简单:通过区间[1,2i-1]与[1+2i-1,2i(2i-1+2i-1 阅读全文
posted @ 2018-10-03 19:07 WR_Eternity 阅读(260) 评论(0) 推荐(0)
摘要: 题目大意: 给你n个数,你可以交换一个数的任意二进制位,问你可以选出多少区间经过操作后异或和是0。 思路分析: 根据题目,很容易知道,对于每个数,我们可以无视它的1在那些位置,只要关注它有几个1即可,如果它的1的数量可以通过加减为0,那么这个区间就是合法的。 可以看到,两个数(分别有x,y个1,且x 阅读全文
posted @ 2018-10-01 19:38 WR_Eternity 阅读(187) 评论(0) 推荐(0)
摘要: 前天,我们了解了一下一种叫做树状数组的神奇玩意儿,今天就放一道真题来检验一下自己的学习成果吧! 嗯,题目就是这样的啦。 分析: 这题的暴力大家应该都会打吧。 注意到m小的压批,所以对于每一个m值,我们可以用前缀和求出[1,i]这个区间内值为m的数的数量,然后在枚举每个区间,判断一下就OK了。这就是暴 阅读全文
posted @ 2018-09-30 08:23 WR_Eternity 阅读(156) 评论(0) 推荐(0)
摘要: 最近沉迷文化课,好久没有研究新算法了(也就那么十来天吧,嗯。),而且还有一大堆题都还没订正,趁着现在一点时间就学了一下一个叫做树状数组的基(gao)础(shen)数据结构(是不是觉得我特别菜,嗯,我自己都这么觉得)。好了,不和大家扯淡了,开始正题——树状数组! 树状数组这种东西,感觉功能和线段树差不 阅读全文
posted @ 2018-09-28 12:31 WR_Eternity 阅读(126) 评论(0) 推荐(0)
摘要: 想必大家都知道一种叫做二叉搜索树这东西吧,那么我们知道,在某些特殊情况下,二叉搜索树会退化成一条链,而且如果出题人成心想卡你的话也很简单,分分钟把你(n log n)的期望卡成。那么我们该如何避免这种尴尬状况的出现呢?我们的范浩强大佬就创造了一种名为Treap的算法。 那么这个算法是如何实现的呢? 阅读全文
posted @ 2018-09-11 11:20 WR_Eternity 阅读(172) 评论(0) 推荐(0)
摘要: 今天,我们要探讨的就是——Tarjan算法。 Tarjan算法的主要作用便是求一张无向图中的强连通分量,并且用它缩点,把原本一个杂乱无章的有向图转化为一张DAG(有向无环图),以便解决之后的问题。 首先,我们在原图上跑一遍DFS,然后会发现三种边: 1、正常边:嗯,顾名思义就是连接祖先和儿子节点的边 阅读全文
posted @ 2018-09-04 08:46 WR_Eternity 阅读(125) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7