10 2021 档案

摘要:整体二分: 引入: 有些题目需要二分,但是当有多次询问二分有可能 \(T\) 飞,这个时候就用到了 整体二分 定义: 整体二分就是:多个查询一起通过二分解决,也就是和莫队一样的离线算法。 性质: 询问的答案具有可二分性。 修改对判定答案的贡献互相独立,修改之间互不影响效果。 修改如果对判定答案有贡献 阅读全文
posted @ 2021-10-28 22:54 Evitagen 阅读(185) 评论(1) 推荐(2)
摘要:CDQ分治 定义: \(CDQ\) 分治是一种思想而不是具体的算法,和 动态规划 类似,大致分为三类: 解决和点对有关的问题。 \(1D\) 动态规划的优化转移 通过 \(CDQ\) 分治,将一些动态问题转化为静态问题。 解决和点对有关的问题: 这类问题类似于: 给定一个长度为 \(n\) 的序列, 阅读全文
posted @ 2021-10-27 21:53 Evitagen 阅读(326) 评论(0) 推荐(1)
摘要:[HNOI2012]永无乡 题意: 一共 \(n\) 个点,每个点权值,给你 \(q\) 个操作: B x y 表示连接 \(x,y\) Q x k 表示求当前 \(x\) 所在连通块内权值第 \(k\) 小的点的编号 分析: 求一个联通块内的权值第 \(k\) 小的点,很容易想到主席树或者权值线段 阅读全文
posted @ 2021-10-27 16:55 Evitagen 阅读(56) 评论(0) 推荐(0)
摘要:权值线段树 定义: 普通线段树维护的是数列的区间信息,而权值线段树维护了一列数中数的个数。 也就是说,我们的权值线段树就是用线段树维护了一堆桶 例子: 给定一个排列: \(1,1,1,2,3,4,5\) 其中,一棵线段树的叶子节点维护的是:有几个 \(1\),有几个 \(2\)。 他们的父亲节点维护 阅读全文
posted @ 2021-10-27 14:29 Evitagen 阅读(358) 评论(0) 推荐(0)
摘要:线段树合并 前置芝士: 动态开点线段树和权值线段树: 因为只有动态开点线段树,在合并时才不用完整建一棵线段树 问题: 如果有若干个线段树,维护相同的值域,并且在某一棵线段树上进行单点修改操作。 最后,我们希望把这些线段树对应位置上的值相加,同时维护区间最大值。 这样,就用到了线段树合并: 思想: 就 阅读全文
posted @ 2021-10-27 12:01 Evitagen 阅读(146) 评论(0) 推荐(0)
摘要:[SCOI2007]排列 题意: 给一个数字串 \(s\) 和正整数 \(d\), 统计 \(s\) 有多少种不同的排列能被 \(d\) 整除,可以有前导 \(0\) 。 分析: 看最多只有 \(10\) 位,我们考虑状压: 设 \(dp[S][i]\) 表示枚举到集合为 \(S\) 时形成的数,模 阅读全文
posted @ 2021-10-26 17:36 Evitagen 阅读(58) 评论(0) 推荐(0)
摘要:[ZJOI2006]三色二叉树 题意: 给定一个中序遍历的二叉树序列 , 每个值代表: \(0\) 无儿子 \(1\) 有左儿子 \(2\) 有右儿子 要求染色,一共有三种颜色:绿,蓝,红,儿子不和父亲颜色相同,若有两个儿子节点则两个儿子节点颜色也不相同,求一种颜色染色个数的最大值和最小值。 分析: 阅读全文
posted @ 2021-10-26 10:33 Evitagen 阅读(95) 评论(0) 推荐(1)
摘要:[TJOI2007]跳棋 题意: 给定一个 \(n \times n\) 的图,有 \(0\) 和 \(1\) 两种点权,每个 \(0\) 能到上下左右同一列/行的下一个 \(0\) ,每个 \(0\) 只能经过一次,给定一个起点,求路径最长。 分析: 因为只能横着/竖着走,因此只能向一个方向拓展。 阅读全文
posted @ 2021-10-25 18:27 Evitagen 阅读(125) 评论(0) 推荐(1)
摘要:CSP2021 游记 游记? 游寄! 下午刚进考场的时候一直在看对拍程序....但是到了考场上发现根本用不上笑死 考前 \(20\) 分钟进了考场...就我们考场进的最慢 考场座位太小了,差评! 考前不让打板子,差评! 坐到第二排离老师太近了,差评! 发题: \(T1\): 看着有点熟悉,应该就是排 阅读全文
posted @ 2021-10-24 18:57 Evitagen 阅读(68) 评论(0) 推荐(1)
摘要:主席树 引入: 一个问题:给定 \(n\) 个数,一共 \(m\) 次询问,每次都要询问 \([l,r]\) 的第 \(k\) 大的数,其中 \(n,m,l,r\) 均不超过 \(2 \times 10^5\)。 解决: 暴力想法: 显而易见,最暴力的方法就是区间 \(sort\) 之后输出第 \( 阅读全文
posted @ 2021-10-18 19:46 Evitagen 阅读(69) 评论(1) 推荐(0)
摘要:快速傅里叶 (这个博客主要帮助自己记着FFT这个算法,并不是讲解用的QAQ) 定义: 现在有两个多项式: \(f(x)=a_1+a_2x+a_3x^2+...+a_nx^{n-1}\) \(g(x)=b_1+b_2x+g_3x^2+...+g_mx^{m-1}\) 加入我们计算 \(f(x)*g(x 阅读全文
posted @ 2021-10-15 19:22 Evitagen 阅读(64) 评论(0) 推荐(0)
摘要:拉格朗日插值 很久很久以前,有一个人叫拉格朗日,他发现了拉格朗日插值,可以求出给出函数 \(f(x)\) 的 \(n+1\) 个点,求出这个函数 \(f(x)\) 的值。 推论: 根据某些定理可知: \(f(x)\equiv f(a)\bmod(x-a)\) 那么我们就可以把这个 \(n+1\) 个 阅读全文
posted @ 2021-10-15 19:21 Evitagen 阅读(286) 评论(0) 推荐(0)
摘要:笛卡尔树 大部分内容来自 OI-WIKI 定义: 笛卡尔树是一种二叉树,每一个结点由一个键值二元组 \((k,w)\) 构成。 要求 \(k\) 满足二叉搜索树的性质,而 \(w\) 满足堆的性质。 如果笛卡尔树的 \(k,w\) 键值确定,\(k,w\) 互不相同,那么这个笛卡尔树的结构是唯一的。 阅读全文
posted @ 2021-10-15 18:26 Evitagen 阅读(3007) 评论(1) 推荐(2)
摘要:[AGC028B] Removing Blocks 题意: 给定长度为 \(n\) 的序列 \(\{a_n\}\),现需将 \(n\) 个元素全部删除。 删除元素 \(i\) 的时候,设包括 \(i\) 的极长未被删除区间为 \([l,r]\) ,则代价为 \(\sum_{p=l}^r a_p\) 阅读全文
posted @ 2021-10-15 18:25 Evitagen 阅读(166) 评论(0) 推荐(1)
摘要:终焉之排列 题意: 给定一个序列 \(a\),求有没有点对满足 \(x\leq y \leq z\) ,有 \(a_x+a_z=2a_y\) 分析: 暴力写法当然是记录每个值出现的位置,然后对于每一个 \(a_i\) 向两边进行搜索。 但是 暴力是一种虫豸的写法 ,考虑正解。 我们设 \(h[x]= 阅读全文
posted @ 2021-10-14 21:48 Evitagen 阅读(79) 评论(0) 推荐(0)
摘要:[CSP-S2019 江西] 多叉堆 题意: 给定 \(n\) 个节点,初始独立,有 \(q\) 次操作: 1,x,y 选择 \(x\) , \(y\),将以 \(x\) 为根的子树合并到 \(y\) 2 x 选择节点 \(x\) ,求节点 \(x\) 所在的树成 小根堆 的概率 分析: 我看题解大 阅读全文
posted @ 2021-10-13 17:31 Evitagen 阅读(104) 评论(0) 推荐(0)
摘要:[NOIP1998 提高组] 进制位 题意: 给定一个字母表 \(S\),第一行或第一列代表了所有的字符,每个字符对应一个数,且 \(s[i][1]=s[1][i]\)。 其中 \(S[i][j]\) 表示 \(S[1][i]+S[j][1]\) 。 请你求出每个字母对应的数字和进位制,如果不行输出 阅读全文
posted @ 2021-10-13 15:24 Evitagen 阅读(110) 评论(0) 推荐(0)
摘要:费用流: 定义: 给定一个网络 \(G=(V,E)\), 每条边除了有容量限制 \(c(u,v)\) , 还有一个单位流量的费用 \(w(u,v)\) 当 \((u,v)\) 的流量 \(f(u,v)\) 时,需要花费 \(f(u,v) \times w(u,x)\) \(w\) 也满足对称性,即 阅读全文
posted @ 2021-10-11 07:10 Evitagen 阅读(295) 评论(0) 推荐(0)
摘要:网络流: 定义: 网络: 网络是指一个有向图 \(G =(V,E)\). 每条边 \((x,y) \in E\) 都有一个权值 \(c(u,v)\) ,称之为容量,当 \((u,v) \notin E\) 时有 \(c(u,v)=0\) 其中有两个特殊的点:源点 \(s\) 和汇点 \(t\), \ 阅读全文
posted @ 2021-10-10 22:03 Evitagen 阅读(370) 评论(0) 推荐(0)
摘要:最小割 定义: 给定一个网络 \(G=(V,E)\) ,源点为 \(s\) , 汇点为 \(t\) ,若一个边集被删去之后,源点和汇点不在联通,则称该边集为网络的割。 边的容量之和最小的割叫做网络流的最小割。 定理: 任何一个网络的最大流量等于最小割中边的容量之和,简称为: 最大流=最小割 过程: 阅读全文
posted @ 2021-10-10 22:02 Evitagen 阅读(607) 评论(0) 推荐(0)
摘要:最大流: 定义: 有一张图,要求从源点流向汇点的最大流量(可以有很多条路到达汇点) 概念: 残量网络: 定义 \(c_f(u,v)\) 为边的流量之差,表示这条边的容量和流量之差,即: \(c_f(u,v)=c(u,v)-f(u,v)\) 对于流函数 \(f\) ,残存网络 \(G_f\) 是网络 阅读全文
posted @ 2021-10-10 21:12 Evitagen 阅读(243) 评论(0) 推荐(0)
摘要:概率 \(DP\) 定义: 概率 \(DP\) 用于解决概率问题与期望问题。 一般般情况下,解决概率问题需要顺序循环,而解决期望问题使用逆序循环 如果定义的状态转移方程存在后效性问题,还需要用到 高斯消元 来优化 同时,也会结合其他转移方式进行考察: \(DP\) 求概率: 这类题目采用顺推,难点是 阅读全文
posted @ 2021-10-10 13:13 Evitagen 阅读(93) 评论(0) 推荐(1)
摘要:并查集 概念: 并查集就是将数组中的数经过树状排列后, 如果寻找两个数是否属于同一集合, 直接找是否属于同一根节点的子树就可以。 路径压缩和按秩合并 路径压缩: 在每次执行 \(get\) 操作的同时, 把访问过的每个节点(也就是所查的元素的祖先,都直接指向树根) 每次 \(get\) 的均摊复杂度 阅读全文
posted @ 2021-10-10 11:30 Evitagen 阅读(262) 评论(0) 推荐(0)
摘要:树状数组 前导: 任何数字都可以用2的几次幂的加和来表示,例如: \(7=2^2+2^1+2^0\) 其中,可以把这些数字通过二进制进行分段,如 \(7=[1,4],[5,6],[7,7]\) 可以通过 \(lowbit\) 运算来表示其段数,接下来是代码: #include<bits/stdc++ 阅读全文
posted @ 2021-10-10 11:29 Evitagen 阅读(69) 评论(0) 推荐(0)
摘要:$next_permutation$函数 其实就是算从 \([1-n]\) 的所有数的全部的排列可能情况 先看代码 #include<bits/stdc++.h> using namespace std; int main(){ int num[3]={1,2,3}; do { cout<<num[ 阅读全文
posted @ 2021-10-10 11:28 Evitagen 阅读(48) 评论(0) 推荐(0)
摘要:\(Trie\) 树 基本概念: \(trie\) 主要是用来存放字符串的,每一个节点表示一个字符,每个 \(node\) 都表示一个根节点. 就像这样:插入 \(see,pain,pand,dog,trie\) (可以得出一个性质就是如果全是小写字母,每个根节点最多有$26$个根节点) 相关代码: 阅读全文
posted @ 2021-10-10 11:27 Evitagen 阅读(41) 评论(0) 推荐(0)
摘要:题意: \(K\) 种物品,求一次取一件把所有种类取遍的概率不小于 \(p/2000\) 的最小天数。 \(p\) 有 \(Q\) 次询问。 分析: 概率 \(dp\) ,而且选择的顺序没关系,因此二维就可以了 设 \(dp[i][j]\) 表示第 \(i\) 天,之前已经选择了 \(j\) 种物品 阅读全文
posted @ 2021-10-10 11:04 Evitagen 阅读(45) 评论(0) 推荐(0)
摘要:期望: 符号/定义: 概率: \(P(A)\) 表示事件 \(A\) 发生的概率: 对于离散的情况,假设一共有 \(n\) 种情况均匀随机,其中 \(m\) 种使得事件 \(A\) 成立,那么 \(P(A)=\frac{m}{n}\) 。 因此,概率在很多情况下可以看成是计数。 直接考虑概率也有优点 阅读全文
posted @ 2021-10-09 20:10 Evitagen 阅读(402) 评论(0) 推荐(0)
摘要:[HNOI2015]亚瑟王 题意: 一共 \(n\) 张牌 \(r\) 轮,给定每张牌在每一轮中出现的概率 \(p[i]\) 和权值 \(d[i]\) 。 若一张牌出现,则进入下一轮,这张牌无效。 若所有牌遍历完,也进入下一轮。 问期望的权值之和。 分析: 因为期望是线性的,因此我们设 \(g[i] 阅读全文
posted @ 2021-10-09 17:05 Evitagen 阅读(35) 评论(0) 推荐(0)
摘要:高斯消元两种形式 定义: 使用高斯消元时,我们会碰到两种形式: 正常的高斯消元,没有模数或模数为质数 设枚举了矩阵中的两行: \[ \quad \begin{bmatrix} a_{i,i} & a_{i,i+1} & .... & a_{i,n} \\ a_{j,i} & a_{j,i+1} & 阅读全文
posted @ 2021-10-09 15:27 Evitagen 阅读(116) 评论(0) 推荐(0)
摘要:[SHOI2014]概率充电器 题意: 有一棵树,每个点都有直接通电的概率,每条线有导电的概率,一个点的电可以通过导线传递到其他点,询问通电点数的期望。 分析: 通电的点的数量的期望就是每个点通电的概率之和 先设 \(h[i]\) 作为一个点是否通电的概率,\(p[i,j]\) 为导线 \((i,j 阅读全文
posted @ 2021-10-09 08:58 Evitagen 阅读(47) 评论(0) 推荐(0)
摘要:排列组合: 排列推导: \(\binom{n}{k}+\binom{n}{k-1}=\binom{n+1}{k}\) 很好证明,将定义式子写出来后合并分数即可. 二项式定理: \((a+b)^n=\sum_{i=0}^n\binom{n}{i}a^{n-i}b^i\) 证明可以利用上面的推导做归纳。 阅读全文
posted @ 2021-10-06 21:57 Evitagen 阅读(893) 评论(0) 推荐(1)
摘要:错排问题: 定义: 给定 \(n\) 元素集合 \(X\) ,它的每一个元素都有一个特定的位置. 而现在要求求出集合 \(X\) 的排列中没有一个元素在它指定位置上的排列的数目. 这样的问题叫做错排问题 解决: 我们设 \(D[n]\) 表示 \(n\) 个元素的错排数 根据容斥原理,我们能得到以下 阅读全文
posted @ 2021-10-05 21:51 Evitagen 阅读(246) 评论(0) 推荐(0)
摘要:裴蜀定理: 定义: 若 \(a,b\) 不全为零,则存在 \(x,y\) ,使得 \(ax+by=gcd(a,b)\) 证明: 记住就行了,证明太长了不想写了..... 例题: CF510D Fox And Jumping 题意: 给出 \(n\) 张卡片,分别有 \(l_i\) 和 \(c_i\) 阅读全文
posted @ 2021-10-05 20:49 Evitagen 阅读(281) 评论(0) 推荐(0)
摘要:欧拉函数: 定义: \(\varphi (n)\) 表示小于等于 \(n\) ,和 \(n\) 互质的数的个数。 当 \(n\) 为质数, \(\varphi(n)=n-1\) 性质: 欧拉函数为积性函数(可以用线性筛计算) 如果 \(gcd(a,b)=1\) , 那么 $\varphi(a \ti 阅读全文
posted @ 2021-10-05 19:25 Evitagen 阅读(638) 评论(0) 推荐(0)
摘要:数论分块 定义: 数论分块可以在 \(O \sqrt{n}\) 的时间里计算一些有除法下取整的和式。 主要是 将 \(\frac{n}{d}\) 相同的数一起同时计算。 定理: 定理 \(1\): \(a,b,c \in \mathbb{Z}, \lfloor \frac{a}{bc} \rfloo 阅读全文
posted @ 2021-10-05 18:47 Evitagen 阅读(83) 评论(0) 推荐(0)
摘要:P3469 [POI2008]BLO-Blockade 题意: 有一个连通的有向图,求出删除一个点后,不能连通的点对的个数 (\((x,y),(y,x)\) 算两对) 分析: 很明显,既然涉及到环类求点集的题目,很明显是 \(tarjan\) 。 有一个性质: 从一个点集到另一个点集,形成的点对个数 阅读全文
posted @ 2021-10-04 21:21 Evitagen 阅读(36) 评论(0) 推荐(0)