随笔分类 -  知识点总结

摘要:约定:以下内容中$\(表示普通乘法,\)\cdot$为点乘,$\times$为叉乘 代码中的表示叉积,&表示点积, ^表示数乘 (当然是从xzy学长那儿学来的习惯啦) 文末有惊喜 前置知识 向量 向量基本概念与运算详见《2020人教版高中数学·选修一》 点积 又叫内积、数量积, 计算出来的结果是数值 阅读全文
posted @ 2021-12-17 20:18 yzhx 阅读(376) 评论(4) 推荐(3)
该文被密码保护。
posted @ 2021-10-10 16:34 yzhx 阅读(16) 评论(0) 推荐(0)
摘要:AC自动机基础 简介 AC自动机(Aho-Corasick automaton), 也可以叫ACAM。 是一种复杂度线性的字符串算法,适用于字符串匹配及相关问题 算法思路 总的来说就是将kmp的next数组的思想运用到Trie树上 但是与next数组不同的是: 名字不同,ACAM里的叫做fail f 阅读全文
posted @ 2021-09-29 22:17 yzhx 阅读(107) 评论(0) 推荐(3)
摘要:李超线段树入门 算法总概 李超线段树用于维护线段和直线与某条直线交点的最值 类似一个凸包的东西 大致思路: 插入时通过线段树记录与更新,每个区间可能的最优的直线 查询时,对于覆盖在某个点之上的所有区间求其最值 插入的细节(现在考虑最大值): 若当前区间没有直线,加入当前直线即可 若**"区间直线"整 阅读全文
posted @ 2021-09-12 22:03 yzhx 阅读(85) 评论(0) 推荐(2)
摘要:朱刘算法 最小树形图 即:有向图中的最小生成树(外向树) 大致思路 1.对每个点求出边权最小的入边,并记录 2.看1,中组成的图有无环,且能否组成树 3.若存在环,则将环缩成一个点,重新赋边权,回到1. 代码 (洛谷模板) #include<bits/stdc++.h> using namespac 阅读全文
posted @ 2021-09-10 22:23 yzhx 阅读(130) 评论(0) 推荐(2)
摘要:SA算法入门 后缀数组是什么? 以下用$S_i$表示字符串S的[i...n]子串部分 对于一个字符串S的所有后缀,即所有 \(S_i\), 按字典序进行排序 我们可以求出两个东西: 一个叫 rank[i], 指$S_i$在所有后缀中的排名 一个叫 sa[i] , 指排名为i的后缀的是$S_{sa[i 阅读全文
posted @ 2021-09-10 20:26 yzhx 阅读(91) 评论(0) 推荐(2)
摘要:ST表 好久没写了, 所以写篇博客来回忆一下 用于解决RMQ问题 主要运用倍增的思想 具体做法: 1. 设f[i][j]为 \([i,i+2^j]\) 区间内的极值, 然后预处理 2. 查询时: 设查询区间长度为len,返回左端点为起点长度为$ 2^{log_2(len)} $ 与右端点为终点同等长 阅读全文
posted @ 2021-05-18 22:16 yzhx 阅读(87) 评论(0) 推荐(2)
摘要:前言: 2021省选最后三天了,开始补去年省选的题目...发现了毒瘤的冰火战士 题意 解释不清了...戳这里 Solution 对于每一时刻而言,冰火战士会分别组成上升和下降的序列,为了让冰火战士的能量总消耗尽量多 即: 冰人的前缀和与火人的后缀和尽可能相等 很容易想到,若冰人前缀和看做一条上升的直 阅读全文
posted @ 2021-04-07 21:58 yzhx 阅读(436) 评论(0) 推荐(3)
摘要:题意 传送门 题意简化: 给定一个带权无向图,边分为黑白两色,求白边数量为k时的最小生成树 \(k<=n<=5*10^4, m<=10^5\) Solution WQS二分 此题作为WQS的入门题, 先得讲讲WQS二分 先谈谈自己的感性理解: WQS二分主要用于: 消除求解最值问题中的物品个数限制 阅读全文
posted @ 2021-04-04 21:58 yzhx 阅读(111) 评论(2) 推荐(4)
摘要:题面 传送门 题意简化: 给定一个带权DAG,总共m个人,每个点正好要有Vi个人经过,求人的总花销最小(每个人分开计算花销) m<=79, n<=100 Solution 是上下界网络流的模板题: 对于每个点流量的限制Vi,常规思路:拆点将点限制转为边限制 所以就成了上下界网络流跑费用流,但是此处上 阅读全文
posted @ 2021-04-04 21:34 yzhx 阅读(86) 评论(0) 推荐(3)
摘要:龟速乘 按快速幂的思想处理加法即可,可以及时取模,有效防止爆long long 代码 ll mul(ll x,ll y) { ll s=0; while(y) { if(y&1) s=(s+x)%mod; x=(x+x)%mod, y>>=1; } return s; } 阅读全文
posted @ 2020-11-12 22:32 yzhx 阅读(85) 评论(0) 推荐(1)
摘要:矩阵乘法 一个可用性强的板子 struct matrix{ int n,m,a[5][5]; matrix () {n=m=0; memset(a,0,sizeof(a));} //空矩阵 matrix (int k) {n=m=k; memset(a,0,sizeof(a)); for(re in 阅读全文
posted @ 2020-11-12 22:27 yzhx 阅读(116) 评论(0) 推荐(1)
摘要:CF558E 题意 Luogu 给定一个长度不超过10^5的字符串(小写英文字母),和不超过50000个操作。 每个操作 L R K 表示给区间[L,R]的字符串排序,K=1为升序,K=0为降序。 输出最终的字符串。 题解 因为字符集只有26,所以区间内重复元素个数很多,排序后相同元素会聚拢,即区间 阅读全文
posted @ 2020-10-22 11:54 yzhx 阅读(142) 评论(0) 推荐(1)
摘要:概述 & 用法 高斯消元就是一种解方程的方法 现在有个n个方程,n个未知数组成的方程组: \(a_{i,1}*x_1+a_{i,2}*x_1...+a_{i,n}*x_n=b_i\) . . . 然后我们把系数都拿出来组成一个 \(n*(n+1)\) 的矩阵 接下来就是消消消 具体方法: 按列消除, 阅读全文
posted @ 2020-06-19 11:44 yzhx 阅读(180) 评论(0) 推荐(1)
摘要:用法&&概述 线性基可以看做是一种数据结构,可以用来维护序列的异或相关(比如去重,求极值) 似乎还可以求异或后的第k小值,但我不会 对于值域,转成二进制之后的每一位 i 对应一个数 a[i],然后维护这个数。 a[i] 它的二进制最高位就是第i位 具体维护方式是: 对于每次插入一个新的值 x 进行如 阅读全文
posted @ 2020-06-19 11:14 yzhx 阅读(158) 评论(0) 推荐(1)
摘要:这篇文章是写给自己看的,可能不会在意某些细节 参考博客(关键是有图好理解):https://www.cnblogs.com/cjyyb/p/7499020.html 前言 Splay是平衡树的一种 它跟treap不同的是,它可以智能(不需要去刻意找方向)旋转,也可以实现区间翻转,个人感觉也好写好调一 阅读全文
posted @ 2020-06-19 10:16 yzhx 阅读(280) 评论(0) 推荐(1)
摘要:权值线段树 顾名思义,就是以权值为下标建立的线段树。 现在让我们来考虑考虑上面那句话的产生的三个小问题: 1. 如果说权值作为下标了,那这颗线段树里存什么呢? ————— 这颗线段树中, 记录每个值出现的次数 2.权值很大怎么办?数组空间不够啊 ————— 可以先离散化,再记录 3.那权值线段树到底 阅读全文
posted @ 2019-10-01 16:58 yzhx 阅读(313) 评论(2) 推荐(1)
摘要:问题 传送门 看到这个问题感觉很难??? 不用怕,往下看就好啦 假如你不会CRT也没关系 EXCRT大致思路 先考虑将方程组两两联立解开,如先解第一个与第二个,再用第一个与第二个的通解来解第三个...(以此类推) 那么怎么解第一个与第二个同余方程呢? \[ \begin{cases} x \equi 阅读全文
posted @ 2019-09-24 16:28 yzhx 阅读(243) 评论(1) 推荐(2)
摘要:Lucas定理 先上结论: 当p为素数: \(\binom{ N }{M} \equiv \binom{ N/p }{M/p}*\binom{ N mod p }{M mod p} (mod p)\) 证明:令 \(s=\lfloor \frac{n}{p} \rfloor\),\(q=n\bmod 阅读全文
posted @ 2019-09-17 22:25 yzhx 阅读(320) 评论(0) 推荐(3)
摘要:线性筛 我已经掌握埃氏筛了 为什么还要学线性筛??? 线性筛的时间复杂度是严格 \(O(N)\) 的, 而埃氏筛的复杂度是 \(O(N * log_{2}( log_{2}(N) )\) 看上去并没有快多少 实际也是, 但在处理一些大数据时,差距就凸显出来了 算法思路 概述: 和埃氏筛类似的 线性筛 阅读全文
posted @ 2019-09-15 08:18 yzhx 阅读(535) 评论(0) 推荐(2)