随笔分类 -  板子

摘要:这个题乱七八糟的,和之前的灭绝树有点像,但是不一样。那个是DAG,这个是有向图。简单步骤就是先求出来dfs序,然后求出半支配点(?),然后通过这个求支配点。 算法不是很理解,先放在这。 题干: 代码: 阅读全文
posted @ 2019-02-23 22:53 DukeLv 阅读(264) 评论(0) 推荐(0)
摘要:这个题是一种题型,其实也就是拆一下点。 分析: 我们首先将原图用n条路径覆盖,每条边只经过每个节点。 现在尽量合并更多的路径(即将两个路径通过一条边首尾相连)。 可以知道,每合并两条路径,图中的路径覆盖数就会减少1。 所以我们只需要利用网络流合并相关的路径即可。 答案求解: 首先将每个节点拆成(Xi 阅读全文
posted @ 2019-02-23 11:26 DukeLv 阅读(187) 评论(0) 推荐(0)
摘要:写起来和fft很像,这里放个板子. 代码: 阅读全文
posted @ 2019-02-12 13:55 DukeLv 阅读(277) 评论(0) 推荐(0)
摘要:K-D tree有点像平衡树,但好像又不太像,就是一个来回切的分治建树,然后暴力加A*查询,详情见代码: HDU - 2966 代码: 阅读全文
posted @ 2019-01-18 21:39 DukeLv 阅读(160) 评论(0) 推荐(0)
摘要:这个是一个处理积极性函数前缀和的东西,先把能处理的范围的函数值处理出来,然后数论分块,递归处理这些值,一点点缩小这个的范围,从而计算出函数值。 具体看代码就行了,不是很难。 洛谷的模板题是处理μ和φ的前缀和。 代码: 阅读全文
posted @ 2019-01-16 09:37 DukeLv 阅读(155) 评论(0) 推荐(0)
摘要:这个题竟然没有用什么新算法,就是用主席树随便搞搞就过了。。。代码好像也很好理解。 题干: 代码: 阅读全文
posted @ 2019-01-11 08:41 DukeLv 阅读(173) 评论(0) 推荐(0)
摘要:这个题比一般主席树还要简单,但是用来练习主席树再好不过了,在这里我再放一下主席树板子。 代码: 阅读全文
posted @ 2018-12-22 14:29 DukeLv 阅读(213) 评论(1) 推荐(0)
摘要:lct是一种动态树,用来维护一些动态加边删边的操作的东西.他主要用到几个操作,其实这个算法和树链刨分有点像,但是不能用线段树简单维护,所以我们要用多棵平衡树来维护树上的一个个子树,然后就进行一些很秀的操作.详情见这个博客:FlashHu 这个博客讲的是真的好,特别适合新手看,而且特别细节,(特别带劲 阅读全文
posted @ 2018-12-19 19:21 DukeLv 阅读(351) 评论(1) 推荐(0)
摘要:搞了一下整体二分,说一下自己的体会. 其实我个人感觉,整体二分和cdq分治在感觉上差不多,写起来其实区别也不大.整体二分其实算是二分答案的升级版,二分答案后对所有询问进行分类,然后用cdq分治中的操作进行询问排序,然后存答案输出.大体上是这样的一个算法. 区间二分有的时候可以省略一些复杂的数据结构, 阅读全文
posted @ 2018-12-14 11:34 DukeLv 阅读(150) 评论(0) 推荐(0)
摘要:机房的人都嘲笑我博客只有两句话,我今天就要打他们的脸!!!我今天写一下FFT这个神奇的算法.首先,我们需要知道,FFT好像就是用来处理两个多项式乘积的,没有多么高端.首先思考暴力,就是暴力把n个数带入求值,然后相乘,复杂度O(n^2).我们考虑分治,分治奇偶,把奇数提出来,再进行分治.先放一个递归的 阅读全文
posted @ 2018-12-04 15:02 DukeLv 阅读(226) 评论(0) 推荐(0)
摘要:主席树其实我还是不太懂,但是就是一个数据结构,维护权值线段树,每次维护一个新的根节点,查询的时候直接把两个版本查就行了.剩下的做题去领悟吧! poj2104 代码: 阅读全文
posted @ 2018-11-29 19:19 DukeLv 阅读(153) 评论(0) 推荐(0)
摘要:文艺平衡树就是splay,维护区间反转,就是把所有左变成右,打个标记就好啦.一开始智障判断是否为根节点的时候傻乎乎的判断是否等于0...删了就好啦! 题干: 代码: 阅读全文
posted @ 2018-11-29 10:09 DukeLv 阅读(205) 评论(0) 推荐(0)
摘要:气死我了,调了一个下午+两节课,各种大大小小的错误,各种调QAQ,最后总之是调出来了. 其实就是一个双旋操作,然后其他就是左儿子<当前节点<右儿子,剩下就是细节了. 题干: 代码: 代码有点长... 阅读全文
posted @ 2018-11-28 09:33 DukeLv 阅读(127) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2018-11-17 09:10 DukeLv 阅读(17) 评论(0) 推荐(0)
摘要:原根就是一种数论的定义,详情请见ssy的博客.我这里主要讲的是poj的1284. poj这道题要求的是一个数的原根有多少个,我一开始自己瞎做把所有原根都求出来了,代码如下: 但是这样会T,百度了一下,发现一个性质,就是一个数的原根个数就是phi[phi[n]],而此题n是素数,phi[n]=n - 阅读全文
posted @ 2018-11-14 13:40 DukeLv 阅读(331) 评论(0) 推荐(0)
摘要:BSGS是一种解决一类专门的问题的解法,主要是解决已知A, B, C,求X使得A^x = B (mod p)这一类问题。 解法很简单,先设x = i*m-j(m=ceil(sqrt(p))),然后进行变形,得到ai*m = b*aj (mod p)。 先枚举j (范围0-m) ,将 b*aj 存入h 阅读全文
posted @ 2018-11-13 22:38 DukeLv 阅读(167) 评论(0) 推荐(0)
摘要:还是不会马拉车啊.今天又学了一遍,在这里讲一下. 其实就是一个很妙的思路,就是设置一个辅助的数组len,记录每个点的最大对称长度,然后再存一个mx记录最大的对称子串的右端点.先开二倍数组,然后一点点扩大.有两种情况,一种i比mx大,这种只好暴力匹配了.还有一种就是i<mx,然后比较mx-i和len[ 阅读全文
posted @ 2018-11-13 17:57 DukeLv 阅读(111) 评论(0) 推荐(0)
摘要:很基础的东西,但是不能马虎,有3种方法,下面一一列举。 一.线性求逆元 二.费马小定理求逆元 三.exgcd求逆元 阅读全文
posted @ 2018-10-06 20:05 DukeLv 阅读(231) 评论(0) 推荐(0)
摘要:虽然很基础,但是还是复习了一下,毕竟比树剖好写。。。 代码: 阅读全文
posted @ 2018-10-05 21:51 DukeLv 阅读(138) 评论(0) 推荐(0)
摘要:现在来填坑,之前落下的知识,现在往回补。之前一直用线段树来顶树状数组和st表,但是跑得慢,写的也慢。。。 单点修改,区间查询: 区间修改,单点查询:(用到了差分思想,注意读入,然后直接查询就是答案) 阅读全文
posted @ 2018-10-05 21:06 DukeLv 阅读(133) 评论(0) 推荐(0)