随笔分类 -  A--模板\算法\知识点总结

摘要:如果只会用最小割做这道题那就太菜辣 引入 来自某学长 平面图:在平面上边不相交的图(边可以绕着画) 那么平面图的边与边就围成了许多个区域(这与你画图的方式有关) 定义对偶图:把相邻的两个区域连上边,形成的图 两个~~可能~~正确的东西: 对偶图$\in$平面图 平面图的对偶图的对偶图是它自己 知道这 阅读全文
posted @ 2018-02-05 18:23 Cyhlnj 阅读(656) 评论(0) 推荐(0)
摘要:豪华配置(复制的神犇的,已膜改) (global-set-key [f9] 'compile-file) (global-set-key [f10] 'gud-gdb) (global-set-key (kbd "C-s") 'save-buffer) (global-set-key (kbd "C 阅读全文
posted @ 2018-01-25 18:18 Cyhlnj 阅读(308) 评论(0) 推荐(0)
摘要:前言 "一道模板题" 后缀数组(SA)是一个比较强大的处理字符串的算法,是有关字符串的比较基础~~是吗?~~算法,所以必须掌握 实现主要有倍增和$DC3$,而我~~太弱了~~只学了倍增 目录 知识点 1.基数排序+倍增 2.最长公共前缀Height 一些要维护的东西 $s$:就是这个字符串,长度为$ 阅读全文
posted @ 2018-01-23 15:07 Cyhlnj 阅读(373) 评论(3) 推荐(1)
摘要:题面 "没有权限号的可以去LOJ" Sol 大家都知道,$LCT$上有许多实边和虚边 实边就是每棵$Splay$上的既认父亲又认儿子的边 虚边就是$Splay$和$Splay$之间只认父亲的的边 那么每个点就有它的虚儿子和实儿子,实际上虚儿子才是它在$LCT$维护的树上的真正的儿子 当你$Acces 阅读全文
posted @ 2018-01-22 15:36 Cyhlnj 阅读(241) 评论(0) 推荐(0)
摘要:题意 求$\sum_{i=1}^{n}\varphi(i)和\sum_{i=1}^{n}\mu(i)$ $n define RG register define IL inline define Fill(a, b) memset(a, b, sizeof(a)) using namespace s 阅读全文
posted @ 2018-01-16 19:24 Cyhlnj 阅读(184) 评论(0) 推荐(0)
摘要:简介 这是我自己的一点理解,可能写的不好 点分治都学过吧。。 点分治每次找重心把树重新按重心的深度重建成了一棵新的树,称为分治树 这个树最多有log层。。。 动态点分治:记录下每个重心的上一层重心,这棵分治树就确定了 修改就暴力在分治树中向上改,反正是log的 至于为什么叫动态点分治我不知道。。。我 阅读全文
posted @ 2018-01-12 17:20 Cyhlnj 阅读(259) 评论(4) 推荐(0)
摘要:"证明" 求解$a^b\equiv x(mod \ p)$ 扩展欧拉定理 $$ a^b\equiv \begin{cases} a^{b\%\phi(p)}~~~~~~~~~~~gcd(a,p)=1\\ a^b~~~~~~~~~~~~~~~~~~gcd(a,p)\neq1,b 阅读全文
posted @ 2018-01-12 08:45 Cyhlnj 阅读(207) 评论(0) 推荐(1)
摘要:证明用到辗转相除相减法 定理一 $gcd(f[i],f[i+1])=1$ 证明:$gcd(f[i], f[i+1]) = gcd(f[i+1] f[i], f[i])=gcd(f[i 1], f[i])$ 递归下去,所以$gcd(f[i], f[i+1]) = gcd(f[1], f[2]) = 1 阅读全文
posted @ 2018-01-11 22:24 Cyhlnj 阅读(254) 评论(0) 推荐(0)
摘要:一些性质 积性函数:对于函数$f(n)$,若满足对任意互质的数字$a,b,a b=n$且$f(n)=f(a)f(b)$,那么称函数f为积性函数。 狄利克雷卷积:对于函数f,g,定义它们的卷积为 $(f∗g)(n)=\sum_{d|n}f(d)g(\frac{n}{d})$。 狄利克雷卷积满足很多性质 阅读全文
posted @ 2018-01-11 14:49 Cyhlnj 阅读(2392) 评论(5) 推荐(6)
摘要:定理 $\sum_{d|n}\mu(d), n=1时为1,n 1时为0$ 设$F(i)=\sum_{d|i}f(d)$ 形式一 证明:$f(n)=\sum_{d|n}\mu(d)\sum_{k|\frac{n}{d}}f(k)=\sum_{d|n}f(d)\sum_{k|\frac{n}{d}}\m 阅读全文
posted @ 2018-01-09 10:09 Cyhlnj 阅读(337) 评论(0) 推荐(1)
摘要:Bitset简介 下面介绍C++ STL 中一个非常有用的东西: Bitset 类似于二进制状压,它可以把信息转化成一个01串存储起来 定义方法: 首先要 然后定义一个长度为len的bitset S 一些操作 bitset还支持&,^,|三个运算 b._Find_first() 找到第一个1的位置 阅读全文
posted @ 2018-01-07 20:09 Cyhlnj 阅读(418) 评论(0) 推荐(0)
摘要:前言 对于树套树,主席树等使用到线段树的比较复杂的数据结构,如果区间修改的话,打标记后pushdown或者pushup是很难做到的~~完全不行吧~~ 所以这个时候,一个神奇的东西诞生了。。。 正题 线段树标记永久化,维护一个标记,假设为cov,再维护一个sum 假设修改区间[ql, qr]全部加上v 阅读全文
posted @ 2018-01-06 09:25 Cyhlnj 阅读(1814) 评论(0) 推荐(4)
摘要:~~学了好久,终于基本弄明白了~~ 推荐两个博客: "戳我" "戳我" 再推荐几本书: 《ACM/ICPC算法基础训练教程》 《组合数学》(清华大学出版社) ~~《高中数学选修》~~ 预备知识 复数方面 ~~找数学老师去~~ $$i^{2}= 1,i为虚数的单位$$ 坐标系上纵轴就是虚数轴,复数就是 阅读全文
posted @ 2018-01-05 20:51 Cyhlnj 阅读(2034) 评论(4) 推荐(6)
摘要:思路 直径即最长的两点的距离 枚举凸包上的所有边,对每一条边找出凸包上离该边最远的顶点(用叉积),计算这个顶点到该边两个端点的距离,并记录最大的值。但是注意到当我们逆时针枚举边的时候,最远点的变化也是逆时针的,这样就可以不用从头计算最远点,而可以紧接着上一次的最远点继续计算。于是我们得到了O(n)的 阅读全文
posted @ 2017-07-30 22:42 Cyhlnj 阅读(241) 评论(0) 推荐(0)
摘要:凸包真是一个神奇的算法。。 概念 凸包,我理解为凸多边形 叉积 对于向量AB和向量BC,记向量AB*向量BC = AB * BC * sin ∠ABC,而叉积的绝对值其实就是S△ABC/2 对于平面上的一些点,我们要求凸包上所有的点,可以使用Graham算法 时间复杂度O(nlogn) 思路 先找到 阅读全文
posted @ 2017-07-30 22:38 Cyhlnj 阅读(456) 评论(0) 推荐(0)
摘要:前几天刚刚自学了一下splay,发现思路真简单实现起来好麻烦 先贴一下头文件 # include <stdio.h> # include <stdlib.h> # include <iostream> # include <string.h> # define ll long long # defi 阅读全文
posted @ 2017-07-11 10:51 Cyhlnj 阅读(231) 评论(0) 推荐(1)