随笔分类 -  笔记

摘要:概述 随机选择通过随机地取总数据的某一部分,来尝试着获取总体数据或总体数据的代表性部分的信息,恰如抽样调查。 例题 CodeChef MSTONE 题意:给出落在 $7$ 条直线上的 $n$ 个点(有些点可能是交点),求点数最多的那条直线上的点数。 数据范围: $T\leqslant 30$。 $n 阅读全文
posted @ 2023-01-15 10:25 未欣 阅读(209) 评论(0) 推荐(0)
摘要:概述 如果元素满足某种序,那么在排序后我们可以直接得到答案。但事实上,大部分情况下没有这么优美的结论。 虽然如此,我们还是可以猜测将元素按某种逻辑排序后,答案的来源(可能是序列中的某几个元素)不会相距太远。 故我们可以用某种逻辑较随机地多次排序,以期望获得高度近似的答案。不过,正确率就...不可知了 阅读全文
posted @ 2023-01-15 10:24 未欣 阅读(71) 评论(0) 推荐(0)
摘要:概述 某些题目的数据,如果顺序随机,将会有非常美妙的结论。 但显然,除非写了“保证数据随机”(事实上,没给 generator 的随机都可以认为是构造...),否则出题人不会这样给数据。 此时就要考虑将数据重排,以获得较优的效果。 如何随机打乱? 给出一种均匀随机的打乱算法及证明: template 阅读全文
posted @ 2023-01-15 10:23 未欣 阅读(60) 评论(0) 推荐(0)
摘要:概述 强化反复是一种随机化思想。 具体来讲,有时题目中的限制过于复杂,无法处理或处理的复杂度不可接受。 此时可以考虑通过随机化地加强限制获得一个较可做的条件,然后多次反复,只要有一次恰好是答案就算成功。 注意,这种“加强限制”指的是将原限制简化规约到某个较强的限制上,必须保证对于所有弱限制下的可能解 阅读全文
posted @ 2023-01-15 10:20 未欣 阅读(22) 评论(0) 推荐(0)
摘要:强化反复 随机打乱 随机排序 随机选择 随机探测 阅读全文
posted @ 2023-01-15 10:18 未欣 阅读(16) 评论(0) 推荐(1)
摘要:LCA 与树上差分 轻重链剖分 长链剖分 树分治 阅读全文
posted @ 2023-01-15 10:13 未欣 阅读(16) 评论(0) 推荐(0)
摘要:概述 树分治通过树的唯一连通性质,递归地求解树上路径(主要是路径长度)相关的问题。 树分治主要包括点分治和边分治。我只会点分治。 点分治 点分治通过选取点作为分割来求解树上路径问题。 较具体地说,如果我们选定一个关键点 $key$ 来分割当前处理的(子)树,那么路径可以分为以下两种: 过 $key$ 阅读全文
posted @ 2023-01-15 10:12 未欣 阅读(61) 评论(0) 推荐(0)
摘要:概述 分治优化常常在 dp 的转移有某种单向单调性时使用,通过类似整体二分的结构,确保每个决策点只在一条链上出现,从而加速转移。一般这种分治优化也有对应的二分栈形式,区别仅在于逆推和顺推。此部分在四边形不等式优化一节。 分治优化本身还是一种非常有趣的 dp 实现方式。这一部分...我还不是非常了解, 阅读全文
posted @ 2023-01-15 10:11 未欣 阅读(105) 评论(0) 推荐(0)
摘要:概述 线段树分治通过将信息下放到时间上的某一段,利用欧拉环游序的特性,高效地离线处理加删问题。 简单来说,对于某个元素 \(x\),设其生命周期为 \([L,R]\)(即其在 \([L,R]\) 期间存在),则将其下放到线段树上的对应段。 在全部信息离线完毕后,对线段树进行 dfs,利用欧拉环游序或 阅读全文
posted @ 2023-01-15 10:10 未欣 阅读(56) 评论(0) 推荐(0)
摘要:概述 CDQ 的本质好像是付 \(\log\) 解一维限制,付几个解几个,但是只能在一维上保序... 大概就是,不断地把有序的维移动。譬如三维偏序的 cdq 套 cdq,首先让第一维有序,然后把序转到第二维上,此时第一维会失序所以要预先标记每个点在第一维上在左/右,然后把序转到第三维上,在转序的过程 阅读全文
posted @ 2023-01-15 10:09 未欣 阅读(39) 评论(0) 推荐(0)
摘要:概述 纯粹分治是分治思想最纯粹,最朴实,最本质?的应用。 我不太会描述...一个典型是平面分治计数。还是看例题吧... 例题 Public NOIP Round #3 数圈圈 题意:求一个二维矩阵中的圈的数量。所谓圈,就是字母全部相同的一个矩形壳。 数据范围:$n,m\leqslant 2\time 阅读全文
posted @ 2023-01-15 10:08 未欣 阅读(29) 评论(0) 推荐(0)
摘要:概述 倍增是基于二进制的一种...预处理?思想。 具体来讲,很多时候想要预处理全范围是不可行的,但我们可以利用二进制能简洁地表示出任何数的特性,做步长为二的整数次幂的预处理,然后由它即时计算任意长度的值。($O(n^2)-O(1)\to O(n\log)-O(\log)$,复杂度平衡...?) 二分 阅读全文
posted @ 2023-01-15 10:07 未欣 阅读(39) 评论(0) 推荐(0)
摘要:概述 二分法是解决如下最优化问题的利器: 解具有某种意义上的单调性。例如,取值单调,或可行性单调(即可行/不可行的分别是问题边界开始的连续一段)。 解不容易直接求出,但判定一个解是否合法较为容易。 此时则可以二分:维护最优区间,每次判定其中点是否合法,若是则舍弃左区间,否则舍弃右区间(这里我们认为右 阅读全文
posted @ 2023-01-15 10:04 未欣 阅读(108) 评论(0) 推荐(0)
摘要:双指针 不想写概述。 CF1788D Moving Dots 题意略。 赛时一直在考虑怎么对总集合点数反演,即设法做 dp 如 $f_{i,j}$ 表示考虑完前 $i$ 个有 $j$ 个集合点的方案数。显然这东西做不了,它的后效性强制它再加两维(上一个选的是啥,上上个选的是啥,好像还需要上上个的方向 阅读全文
posted @ 2023-01-15 10:04 未欣 阅读(69) 评论(0) 推荐(0)
摘要:排序算法 计数排序 计数排序是一种计算每个数字出现次数后做值域上的前缀和以对各元素排序的排序方式。 计数排序是一种非比较排序,即不基于比较的排序。计数排序是稳定的。 具体实现:依次枚举每个元素,将其丢进其关键字对应的桶里(这些桶的管辖范围都是 $1$,也可以认为计数排序就是桶排序的退化)。全部放置完 阅读全文
posted @ 2023-01-15 10:02 未欣 阅读(47) 评论(0) 推荐(0)
摘要:数据类型 显而易见地,越小的型的运算越快。 大体来讲 long long 的常数比 int 大一倍,但 __int128 的比 long long 大一倍不止(因为没有 128 位机,故 __int128 的实现是“不自然”的)。 short 和 char 的表现特别差,不论什么环境。原因?它们在任 阅读全文
posted @ 2023-01-15 10:00 未欣 阅读(66) 评论(0) 推荐(0)
摘要:朴素分析 直接暴力统计计算次数。 摊还分析 聚合分析 核心思想:算出总复杂度然后均摊。 例: 1.“栈”:维护一个栈,支持栈顶插入和一次弹出所有元素。 显然 $n$ 次操作至多 $n$ 个点插入,从而最多有 $n$ 个点弹出。 总复杂度 $O(2n)$,均摊复杂度 $O(2)$。 2.$vector 阅读全文
posted @ 2023-01-15 10:00 未欣 阅读(36) 评论(0) 推荐(0)