歌名 - 歌手
0:00

    随笔分类 -  算法

    摘要:前言 话说本月初看到了一道题 "【51nod 2004】终结之时" 是支配树裸题,所以我就顺便去学习支配树 我现在还是不太懂,只能讲讲构造方法 构造方法 我们先建出dfn树 定义 考虑如何求sdom, 按照dfn从大到小枚举y, 对于一条边(x,y),更新sdom[y] 最后就可以通过sdom来求出 阅读全文
    posted @ 2018-09-26 21:40 无尽的蓝黄 阅读(270) 评论(0) 推荐(0)
    摘要:"51nod 1348 乘积之和" include include include include include include include include include include const int maxlongint=2147483647; const long long mo= 阅读全文
    posted @ 2018-05-28 12:12 无尽的蓝黄 阅读(261) 评论(0) 推荐(0)
    摘要:递归版 "UOJ34多项式乘法" //容易暴栈,但是很好理解 include include include include include include include include const int maxlongint=2147483647; const int mo=1e9+7; co 阅读全文
    posted @ 2018-05-28 12:11 无尽的蓝黄 阅读(145) 评论(0) 推荐(0)
    摘要:前言 每次看了很快就忘了,干脆写一篇博客,来加深记忆。 定义 设 $$f(a,b,c,n)=\sum_{i=0}^{n}\lfloor\dfrac{ai+b}{c}\rfloor$$ $$g(a,b,c,n)=\sum_{i=0}^{n}i\lfloor\dfrac{ai+b}{c}\rfloor$ 阅读全文
    posted @ 2018-05-28 12:10 无尽的蓝黄 阅读(171) 评论(0) 推荐(0)
    摘要:前言 这篇博客是根据我在打这道题的时候遇到的问题,来打的,有些细节可能考虑不到。 题目 在N(1 include include include include include include const int maxlongint=2147483647; const int mo=1000000 阅读全文
    posted @ 2018-05-17 16:14 无尽的蓝黄 阅读(304) 评论(0) 推荐(0)
    摘要:前言 其实AC自动机就是多模式匹配,运用trie和kmp把时间复杂度优化到线性的O(N)。 一、建trie trie就不多说了,相信大家都会 void put() { int now=1,len=strlen(s1+1); for(int i=1;i 阅读全文
    posted @ 2018-05-16 20:58 无尽的蓝黄 阅读(135) 评论(0) 推荐(0)
    摘要:前言 在自从gdoi2016被第一题的三分虐了后,再次接触三分,其实不难。 三分算法解决凸形或者凹形函数的极值。 流程 $令lmid=l+\dfrac{r l}{3},rmid=r \dfrac{r l}{3}$ $当lmid在函数上的值小于rmid时将l更新为lmid$; $当rmid在函数上的值 阅读全文
    posted @ 2018-05-15 22:43 无尽的蓝黄 阅读(293) 评论(0) 推荐(0)
    摘要:前言 如果要求一些数中的第k大值,怎么做? 可以先就这些数离散化,用线段树记录每个数字出现了多少次。 。。。 那么考虑用类似的方法来求静态区间第k大。 原理 假设现在要有一些数 我们可以对于每个数都建一棵新的线段树,用来记录出现每个数字出现了多少次的前缀和。 那么假设要求区间[l,r]的第k大,将第 阅读全文
    posted @ 2018-05-15 22:43 无尽的蓝黄 阅读(485) 评论(0) 推荐(0)
    摘要:前言 可持久化线段树主要用于对于历史版本的查询修改。 举个例子,目前修改了10次,现在要返回第7次修改后的版本进行查询修改,那么这样就要用到可持久化线段树。 当你要进行对于历史版本的查询修改,自然要记录历史版本,但如果对于每个历史版本建立都一棵新的线段树,显然会爆空间。那如何使用可持久化线段树呢。 阅读全文
    posted @ 2018-05-15 22:40 无尽的蓝黄 阅读(363) 评论(0) 推荐(0)
    摘要:定义 代码解释 阅读全文
    posted @ 2018-05-15 22:36 无尽的蓝黄 阅读(230) 评论(0) 推荐(0)
    摘要:介绍 差分约束系统这种东西非常的神奇, 就是如果一个系统由n个变量和m个约束条件组成,形成m个形如$$a_{i} a_{j}\leq k$$的不等式$(i,j∈[1,n],k为常数)$,这可以把每个$a_{i}$当作一个节点,对于一个不等式$a_{i} a_{j}≤k$,将$a_{j}向a_{i}连 阅读全文
    posted @ 2018-05-12 19:54 无尽的蓝黄 阅读(143) 评论(0) 推荐(0)
    摘要:匈牙利算法的原理很简单,就是:$\rm{\color{red}{随便找个位置,如果位置上被匹配了,让该位置的占有者去找另一个位置,该位置的占有者找不到才占回原来的位置}}$。 还是举个例子,会容易理解些: 现在有五个人A、B、C、D、E和四个座位,每个人都想找个座位休息,但每个人都很挑剔,只喜欢某个 阅读全文
    posted @ 2018-05-12 19:53 无尽的蓝黄 阅读(270) 评论(0) 推荐(0)
    摘要:前言 树链剖分:在一颗树上两点之间的路径的修改、求值。 原理 将一课树分成若干条链,将它们连起来,形成一条链,再用线段树等方法来维护、求值。 定义 在熟练剖分中,会使用到很多数组,这是它们的作用: 那么 重儿子 就是某个节点的儿子中size[]值最大的节点, 重边 就是它们的之间的边,由 重边 连起 阅读全文
    posted @ 2018-05-11 21:32 无尽的蓝黄 阅读(150) 评论(0) 推荐(0)