摘要:
笛卡尔树 定义:笛卡尔树是一种二叉树,每一个结点由一个键值二元组 \((k,w)\) 构成。要求 \(k\) 满足二叉搜索树的性质,而 \(w\) 满足堆的性质。一个有趣的事实是,如果笛卡尔树的 \((k,w)\) 键值确定、并且 \(k\) 不相同, \(w\) 不相同,那么这个笛卡尔树的结构是唯 阅读全文
摘要:
莫比乌斯反演例题 原理: \[ f(x)=\sum_{d\mid x} g(d) \iff g(x)=\sum_{d\mid x} \mu(d)f(\dfrac x d) \] \[ f(x)=\sum_{x\mid d} g(d) \iff \sum_{x\mid d}\mu(\dfrac d x 阅读全文
摘要:
简单数学 常见概念和符号 数论常见符号 整除符号 $x\mid y$,表示 $x$ 整除 $y$ ,即 $x$ 是 $y$ 的因数 取模符号 $x \bmod y$ ,表示 $x$ 除以 $y$ 以后的余数 互质符号 $x~\bot~y$ ,表示 $x$ ,$y$ 互质 最大公约数 $\gcd(x, 阅读全文
摘要:
转自知乎 动态规划的本质不在于是递推或是递归,也不需要纠结是不是内存换时间。 理解动态规划并不需要数学公式介入,只是完全解释清楚需要点篇幅…首先需要明白哪些问题不是动态规划可以解决的,才能明白为神马需要动态规划。不过好处时顺便也就搞明白了递推贪心搜索和动规之间有什么关系,以及帮助那些总是把动规当成搜 阅读全文
摘要:
背包问题的一些拓展与处理 装箱问题 题目描述: 有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数)。要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 核心思想 $f[i]$记录当体积为m时,最多能放多少 转移方程:\(f_j=max(f_j,f_{j-u}+u)\ 阅读全文
摘要:
题目描述 给出一串数字,问中位数大于等于X的连续子串有几个。(这里如果有偶数个数,定义为偏大的那一个而非中间取平均) 核心思路 当我们遇到中位数题目时,一个很平常的处理就是把大于x的赋值成1,小于x的赋值成0,然后预处理初前缀和 然后我们如果想找到一个符合题意的字串,就要满足$sum[r]-sum[ 阅读全文
摘要:
对拍 步骤: 1.先写出自己的代码并运行 2.写出暴力代码并运行 3.写随机数生成器 #include<cstdlib> #include<ctime> #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> 阅读全文
摘要:
#pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize("Ofast") #pragma GCC optimize("inline") #pragma GCC optimize("-fgcse") #pragma GC 阅读全文
摘要:
树链剖分 要求 已知一棵包含 N 个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 1 x y z,表示将树从x到y结点最短路径上所有节点的值都加上z。 2 x y,表示求树从x到 y 结点最短路径上所有节点的值之和。 3 x z,表示将以x为根节点的子树内所有节点值都加上z。 阅读全文
摘要:
#manacher算法 这个算法我相信绝对是比kmp好理解多了 含义 首先看manacher算法的含义: 洛谷P3805 模板manacher算法 给出一个只由小写英文字符 a,b,c,d,e……z 组成的字符串 S ,求 S 中最长回文串的长度 。 字符串长度为 n。 初步构想 暴力匹配,每一个位 阅读全文