摘要:
先推荐几篇比较好的博客吧。 OI-wiki Jue-Fan 的博客 辨析 决策单调性优化适用于满足决策单调性的问题。 斜率优化的适用范围还没学习不清楚。 一般来说斜率优化能做的题目决策单调性优化也能做,但是也有例外,由于过于高深我不知道。除此之外,斜率优化是 \(\mathcal{O}(n)\) 的 阅读全文
posted @ 2025-02-20 22:51
Luke_li
阅读(11)
评论(0)
推荐(0)
摘要:
普通生成函数与多项式 Ordinary Generating Function and Polynomial 本段中所谓生成函数皆指普通生成函数。 本文中仍有诸多不详尽之处,未提及的内容可参考雪猫学长的博客。 简介 Introduction 生成函数是对于数列而言的。 一个数列 \(\{a_i\}\ 阅读全文
posted @ 2025-02-20 22:50
Luke_li
阅读(31)
评论(0)
推荐(0)
摘要:
参考文献 https://zhuanlan.zhihu.com/p/604377422 (很好) https://www.luogu.com.cn/article/j0zigjbf https://blog.csdn.net/DT_Kang/article/details/79944113 单位根 阅读全文
posted @ 2025-02-20 22:50
Luke_li
阅读(3)
评论(0)
推荐(0)
摘要:
由于刚学没几天,所以没什么例题。 简介 根号分治是一种用于优化暴力的技巧。 如果对于一个问题,有两种暴力:它们的一部分是复杂度瓶颈,一部分不是,而两者的瓶颈恰好是两个极端。那我们考虑根据某个值的根号分类讨论,结合两种算法,把 \(n\) 的复杂度转化为 \(\sqrt{n}\)。 可以说,根号分治就 阅读全文
posted @ 2025-02-20 22:49
Luke_li
阅读(62)
评论(0)
推荐(1)
摘要:
基数排序 基数排序适用于多关键字字典序排序的时候(或者也可以把一个数拆位,把每一位当成关键字)。它可以做到几乎 \(O(n)\) 的时空复杂度。 步骤 假如我们要对各有 \(k\) 个关键字的 \(a\) 个数字进行排序,我们就从最次要的关键字开始枚举,对该关键字采取稳定的排序。稳定的排序是,具体而 阅读全文
posted @ 2025-02-20 22:48
Luke_li
阅读(26)
评论(0)
推荐(0)
摘要:
概念辨析 点双连通分量(v-DCC)内部没有割点。(割点:删去该点之后子图不连通) 边双连通分量(e-DCC)内部没有割边。(割边:删去该边之后子图不连通) e-DCC不一定是v-DCC(反例容易举出)。 v-DCC不一定是e-DCC(如一条孤立边)。 点双连通分量(v-DCC) 定义 点双连通分量 阅读全文
posted @ 2025-02-20 22:40
Luke_li
阅读(20)
评论(0)
推荐(0)
摘要:
欧拉通路:经过每个点恰好一次的路径 欧拉回路:出发和结束在同一点的欧拉通路 注意以下性质:无向图中,所有点度数之和是偶数;有向图中,所有点入度之和等于出度之和。 欧拉回路一般有两种题型:打印方案和判断可行性 看到“每条边都必须经过”这类条件,应第一时间想欧拉回路。 模板 我只会 Hierholzer 阅读全文
posted @ 2025-02-20 22:40
Luke_li
阅读(40)
评论(0)
推荐(0)
摘要:
简述 相当类似 CDQ 的一种算法。说的冠冕一点,是对于每个 mid 批量处理查询的算法。 更加简单的说法就是:二分答案,对于每个 \(mid\),用二维数点之类的方法判断每个查询的答案是大于 \(mid\) 还是小于 \(mid\),据此将查询分为两类继续递归下去。(一般来说会把修改也放进来,使用 阅读全文
posted @ 2025-02-20 22:39
Luke_li
阅读(12)
评论(0)
推荐(0)
摘要:
网络流 网络流的问题套路性较强,需要多刷题。 模板 Dinic 算法求最大流 点击查看代码 ll n,m,s,t; struct edge { ll v,w,nxt; }e[M*2]; ll head[N],tot=1; void insert(ll u,ll v,ll w) { tot++; e[ 阅读全文
posted @ 2025-02-20 22:38
Luke_li
阅读(28)
评论(0)
推荐(0)
摘要:
Manacher 算法 简介 Manacher 是一种写法非常简单的用于快速查找字符串中回文串的算法。其时间复杂度为 \(O(n)\),空间复杂度为 \(O(n)\),二者均有 \(2\) 倍常数。 使用 Manacher 算法可得到以每个位置(和分割线)为中心的最长回文串。 步骤 见 OI-wik 阅读全文
posted @ 2025-02-20 21:23
Luke_li
阅读(23)
评论(0)
推荐(0)
摘要:
简介 字典树,又称Trie,是一种把字符串放在树上的数据结构。 可以用来: 做AC自动机的基础 \(O(\min(len_s,len_t))\) 查找一些字符串有多少是另一个字符串的前缀。 处理异或相关问题 做法: 每个点由若干个子节点,对应着下一个字母。 每次从根结点出发,根据当前字母是什么,走向 阅读全文
posted @ 2025-02-20 21:22
Luke_li
阅读(27)
评论(0)
推荐(0)
摘要:
分治 题目:模拟赛题 不知道怎么想到分治的。总之不断分治,每次讨论中间跨过界限的3个点(因为一次不可能跨过超过3个点,所以一定经过了3个点中的1个)。剩下的不会。 博弈论 二分图博弈 比如这道题。可以直接分析后 \(O(1)\) 做完。 一般来说:轮流取/移动某个东西,可能和二分图博弈有关。详情见这 阅读全文
posted @ 2025-02-20 21:22
Luke_li
阅读(7)
评论(0)
推荐(0)
摘要:
杂项 特殊权值图中,最短路在MST上 如果权值满足“若 \(a<c且b<c\),那么 \(a+b<c\) ”(如 \(\{2^i\}\))那么多点之间最短路的并在这些点的MST上,贪心建MST即可。 证明:prim 和 dijkstra 的区别就在于上面两个式子。因此只要有左推右的条件,就有这一性质 阅读全文
posted @ 2025-02-20 21:21
Luke_li
阅读(10)
评论(0)
推荐(0)
摘要:
从复杂度入手 以下展示了一些经典的算法的复杂度。当然还有很多遗漏的,接下来慢慢补。 数据规模(以1000ms时限为例) 典型的对应算法 复杂度 \(1\le n\le 10\) 全排列 \(O(n!)\) \(1\le n\le C\times 20\) 搜索;状态压缩 \(O(2^n)\)(注意常 阅读全文
posted @ 2025-02-20 21:20
Luke_li
阅读(7)
评论(0)
推荐(0)
摘要:
计数题 https://www.luogu.com.cn/article/xt2szowt 是一篇讲述序列计数问题的博客。 对 2 取模的计数 / 所有方案权值的异或和 涉及组合数的,考虑卢卡斯定理。组合数对二取模就相当于二进制下每一位分别做组合数的乘积。\(\binom{n}{m}\bmod 2\ 阅读全文
posted @ 2025-02-20 21:13
Luke_li
阅读(3)
评论(0)
推荐(0)
摘要:
尚未分类 二进制分组 把图/问题按二进制分为几组,分开来跑一些算法。目前没发现太多的应用。一般用于:一个点既可能是起点又可能是终点,或者既可能有某种性质也可能没有这种性质。 这个方法被运用于很多精妙的算法:如 hamming校验码。 一个用途 例题:有个图,图中有些特殊点,求特殊点互相距离的最小值( 阅读全文
posted @ 2025-02-20 21:10
Luke_li
阅读(4)
评论(0)
推荐(0)
摘要:
杂项(暂未归类) 树状数组优化贪心:邻项交换得到单峰序列的最小交换次数 有一个排列,你每次可以交换相邻两项,问你最少要交换几次才能得到单峰序列(峰的左边单调递增,峰的右边单调递减)。 注意到:最小的数一定在最左边/最右边。分配完最小的数字后,次小的数字也一定在最左边/最右边。 因此我们有一种贪心:每 阅读全文
posted @ 2025-02-20 21:10
Luke_li
阅读(8)
评论(0)
推荐(0)
摘要:
综合性 tricks 时间倒流 如果只有删除操作但是不好删除,考虑让时间倒流,从最后的状态不断加入。其余同理。 适用于很多想法,如平衡树维护凸包,区间染色,图论删除/加入点等等。 插入标记回收 解决的问题是:\(q\) 次询问 \(x\) 依次经过 \(r−l+1\) 种操作的结果。 第 \(i\) 阅读全文
posted @ 2025-02-20 21:09
Luke_li
阅读(5)
评论(0)
推荐(0)
摘要:
偶然看到一种推导欧拉公式的方法: 定义 \(f(x)=\frac{\cos x+i\sin x}{e^{ix}}\) 我们发现 \(f(0)=1\) 我们还有 \(f'(x)=\frac{i\cos x-\sin x}{e^{ix}}-\frac{i\cos x+i^2\sin x}{e^{ix}} 阅读全文
posted @ 2025-02-20 21:08
Luke_li
阅读(59)
评论(0)
推荐(0)
摘要:
在了解皮亚诺公理体系后,我突然幻想,尝试构建一个类似的公理体系(在不看标答的情况下)。由于是瞎试,所以肯定有非常多不严谨的地方,权当娱乐罢了。 定义 文字叙述的部分 定义一个表达式由算符和数组成。 算符有以下几个性质: 返回值:可以是表达式(布尔)或者数 输入值:可以是若干个,类型可以是表达式或数 阅读全文
posted @ 2025-02-20 21:04
Luke_li
阅读(32)
评论(0)
推荐(0)
摘要:
金牌选手的做题技巧 来自10circle /usr/bin/time -v test:测试程序 test 的具体时间、峰值空间。注意这是不算未使用的静态空间的。 小心 \(n\) 和 \(m\) 写反。 注意数组不要开小或开大。 注意计算变量范围,不要能到 long long 的变量开 int。 感 阅读全文
posted @ 2025-02-20 20:59
Luke_li
阅读(20)
评论(0)
推荐(0)
摘要:
题目:P9754 [CSP-S 2023] 结构体 调试时长:\(10\) 小时 题目做法:大模拟 对齐要求 非常重要,一定不能理解错! 每一个元素(无论是结构体中的或者是全局的)都要按照自己的对齐要求对齐。 比如类型为 \(struct\ a\) 的元素 \(x\) 的对齐要求是 \(8\) ,那 阅读全文
posted @ 2025-02-20 20:55
Luke_li
阅读(34)
评论(0)
推荐(0)
摘要:
【学习笔记】技巧-状态压缩 第一篇学习笔记 OI-WIKI链接 前置知识:位运算 (位运算一定记得加括号)!!! 基本知识 意义 使用二进制数的每一位(0/1)代表一个元素的状态(是/否) 譬如:\((1001)_2\) 代表第1、4个元素为True 一般可以用于表示元素是否已经选了、或者是否开关 阅读全文
posted @ 2025-02-20 20:54
Luke_li
阅读(15)
评论(0)
推荐(0)

浙公网安备 33010602011771号