随笔分类 -  模板

摘要:Archie 本文为倍增做法 后缀数组题 后缀数组是啥,把所有的后缀排个序就是后缀数组了 显然的暴力做法就是全部sort一遍 这不白瞎 我们利用倍增的思想,显然可以把一个字符串分成两半进行比较就可以了 引用一下wiki的图片。 这里有两个数组 $SA_i$表示第i小的后缀的编号 而$RK_i$表示第 阅读全文
posted @ 2021-07-20 17:53 Simex 阅读(115) 评论(0) 推荐(0)
摘要:Archie 这只是一道橙题,为什么我要写呢,。 因为这个题可以用基数排序做 以下做法为基数排序+计数排序 计数排序 和桶排有所相似 首先,统计每个值的出现次数 然后呢,在值域范围内统计次数的前缀和 然后从后往前扫并统计 for(int i=m;i>=1;--i){ b[tot[3][a[i]%10 阅读全文
posted @ 2021-07-20 17:11 Simex 阅读(161) 评论(0) 推荐(0)
摘要:splay splay与他的解析 二叉搜索树 我们搞一棵树,保证左子树所有点的权值比父亲小,右子树所有点权值比父亲大 显然这个玩意可以快速查询一个数存不存在,排名啦啥的 插入的时候直接顺序造节点,删除的时候,断开重连是件很愚蠢的事情 应该把删除节点和他右子树最左边那个或者左子树最右边那个交换,销毁它 阅读全文
posted @ 2021-07-19 16:02 Simex 阅读(71) 评论(0) 推荐(0)
摘要:Archie 这叫啥啊,区间异或+区间求和 我用动态开点写的 #include<iostream> #include<cstdio> #include<algorithm> #define ll long long using namespace std; int n,m; int x,y,z; i 阅读全文
posted @ 2021-07-18 16:31 Simex 阅读(46) 评论(0) 推荐(0)
摘要:Archie 区间加和单点查询 很简单的思路就是$O(\sqrt)修改和o(1)$查询,就像线段树一样搞。一个tag #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std 阅读全文
posted @ 2021-07-17 10:51 Simex 阅读(49) 评论(0) 推荐(0)
摘要:Archie 显然这玩意可以胡搞 怎么搞 模拟退火基本知识 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; double delat=0.993; double 阅读全文
posted @ 2021-07-16 17:02 Simex 阅读(55) 评论(0) 推荐(0)
摘要:Archie 拉格朗日插值法 知道了n个点的坐标,构造出一个n次多项式 然后求f(x) 公式 $ f_k=\sum_^ny_i\prod_{j=1\quad j\neq i }^n\frac$ 就行了 #include<iostream> #include<cstdio> #include<cstr 阅读全文
posted @ 2021-07-16 16:56 Simex 阅读(67) 评论(0) 推荐(0)
摘要:我们需要的是解方程组 手解怎么解,挨个试呗 所以说呢,电脑也可以干一样的事情 从$x_1$到$x_n$一个一个得消去系数,然后倒着推回来 这里的问题很简单,不需要考虑自由元什么的 所以说搞就行了 在这里呢,我们把$1\rightarrow n$的系数依次搞成零 #include<iostream> 阅读全文
posted @ 2021-06-20 11:07 Simex 阅读(47) 评论(0) 推荐(0)
摘要:❤Aimee❤ 和普通的最短路相比,多了一个免费边的限制 可以考虑得到,如果没有免费边的话,其实也就都一样了,那么考虑只有一个免费边 我们使用了之后,是不是就相当与进入了一个新的(没有边可以免费的)图,在这张图上,就和原来一样跑最短路就可以了 推而广之,结合一下dp的思想,可以把图分成$k$层,每用 阅读全文
posted @ 2021-05-17 17:11 Simex 阅读(51) 评论(0) 推荐(0)
摘要:Miku 悬线法: 对于每一个点,我们以这个点为矩形的最低点,然后向左右检查最大扩展位置,然后向上找在此情况下的最大高度 #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> using namespace 阅读全文
posted @ 2021-03-14 14:45 Simex 阅读(79) 评论(0) 推荐(0)
摘要:Aimee 可以用网络流解决 建超级源点与超级汇点,源点与所有的外籍飞行员相连,容量为1(顶多选一人一次) 超级汇点同理,容量还是1,而飞行员之间的点就可以使大于等于1的任意数 顶多只有1的流量 最后所有漫流的边即为方案 方案书就是最大流 #include<iostream> #include<cs 阅读全文
posted @ 2021-02-04 11:50 Simex 阅读(276) 评论(0) 推荐(0)
摘要:Aimee 显然这是一个网络流 一开始,我们大可以随便找一条可行流 然后再找一条,可是如果要返回怎么办?可以建立对应的反向边,反向边的容量即即为正向边流量,构成残余网络,在残余网络上找到的从s$\rightarrow$t的路径,就是一条可行流,并且,找到最大流的充要条件是它的对应残余网络没有增广路 阅读全文
posted @ 2021-02-04 11:34 Simex 阅读(84) 评论(0) 推荐(0)
摘要:Aimee 显然这是一个网络流 一开始,我们大可以随便找一条可行流 然后再找一条,可是如果要返回怎么办?可以建立对应的反向边,反向边的容量即即为正向边流量,构成残余网络,在残余网络上找到的从s$\rightarrow$t的路径,就是一条可行流,并且,找到最大流的充要条件是它的对应残余网络没有增广路 阅读全文
posted @ 2021-02-04 11:16 Simex 阅读(84) 评论(0) 推荐(0)
摘要:Aimee 马拉车算法,以优秀复杂度求解回文子串 我认为的关键:减少重复计算 用r表示当前已知回文子串右边界,id表示其中心的位置 显然我们当下求解的i应该再id右边 如果这个i在r的左边,那么显然在id的中心中,因该有一个关于i的对称点,并且因为位置的的原因,左边点的回文是已经被算出来了的,那样可 阅读全文
posted @ 2021-02-02 17:13 Simex 阅读(48) 评论(0) 推荐(0)
摘要:Aimeeeeeeeeeeeeeeeeeeee 人是会变的 我从没想过有一天我会不想放假 一个小小的A*,求出来每一个点到终点的距离作为估价函数 (显然这是最乐观的情况) 然后就是一个搜索了 搜索的key就是估价+走过的距离 并且显然如果一个点已经被取出了k次,那么这个点就是不会对第k条路起作用了 阅读全文
posted @ 2020-11-26 23:19 Simex 阅读(158) 评论(0) 推荐(0)
摘要:Aimee tarjan是一个好东西 如果这个题没有环,那很简单 讨厌环 那就缩点,毕竟说了一个边只算一次 tarjan找到强联通分量,然后缩成一个点 怎么做呢? 有一个dfn,也就是时间戳,还有一个low,表示能向下到达的最小的时间戳 然后dfsssssssssssssssssssssssssss 阅读全文
posted @ 2020-11-04 21:49 Simex 阅读(88) 评论(0) 推荐(0)
摘要:Aimee 好不容易得到了这个称号,别着急摘下来 --scz 你也可以不用次小生成树做 但是也可以 次小生成树和最小一样大就证明不止一个 次小生成树要是不严格的话,只需要在求出的最小生成树上,加入一条新边,然后生成了一个环,在这个环上呢,删掉最大的边就行了 然后在最小生成树上加一点点东西就够了 存一 阅读全文
posted @ 2020-11-03 20:50 Simex 阅读(107) 评论(0) 推荐(0)
摘要:Aimee 考试前看到某份考纲提到了平衡树 突发奇想想学一个 但是来不及了,为了平衡学习时间,以及大佬的建议下,毅然决定用vector搞一个 额,要是vector都过不了,那以我的水平,也拿不到更多的分了 配方,lower_bound+upper_bound+vector 对于操作1,使用vecto 阅读全文
posted @ 2020-11-03 19:39 Simex 阅读(88) 评论(0) 推荐(0)
摘要:First Second 快速排序还是很重要的 #include<iostream> #include<cstdio> #include<algorithm> #include<cstdio> using namespace std; int zn[5000001]; int n,Aimee; vo 阅读全文
posted @ 2020-11-02 20:50 Simex 阅读(115) 评论(0) 推荐(0)
摘要:链接:Miku 和[线段树2](https://www.luogu.com.cn/problem/P3373) 一样的题 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define int lon 阅读全文
posted @ 2020-09-12 20:06 Simex 阅读(123) 评论(0) 推荐(0)