摘要: 一些 update update 2021/2/23:最近作者发现数位 DP 的 \(f\) 数组初始化有问题,导致代码出现了根本性错误(原理不变),现在已经纠正,对各位读者造成的困扰深表歉意。 1. 概述 数位 DP,是一种 DP (废话),专门用于数字统计类问题。 这种问题首次接触可能会有些难理 阅读全文
posted @ 2022-04-14 21:43 Plozia 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 本题为期望 DP 入门题。 为了方便,下面直接认为 \(p_i\) 就是概率。 首先设状态,\(f_i\) 为从第一面镜子到第 \(i\) 面镜子都高兴的期望天数。 然后列方程: 第 \(i\) 天询问失败,从头开始。 此时概率为 \(1-p_i\),消耗天数为 \(f_{i-1}+1+f_i\), 阅读全文
posted @ 2022-04-14 21:42 Plozia 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 1. 前言 概率/期望 DP,是一种 DP,用来计算概率或者是期望。 其实我认为这种 DP 就是计算期望的,毕竟概率可以看成代价为 1 的期望。 没有学过期望的读者可以看看这篇文章:数学/数论专题-学习笔记:概率与期望 而概率/期望 DP,最关键的就是期望方程。 下面看一道例题。 2. 例题 CF1 阅读全文
posted @ 2022-04-14 21:42 Plozia 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 本题是一道数学题。 我们首先需要交换一下求和符号,然后利用二进制的性质拆式子即可。 具体过程如下: \(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\sum\limits_{k=1}^{n}(x_i \text{ and }x_j) \times (x_j \ 阅读全文
posted @ 2022-04-14 21:41 Plozia 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 根据目前作者了解,本题有两种解法:并查集/线段树。 1. 并查集 对于并查集这种只能合并不能删除的数据结构,当然要想一点珂技。 我们倒过来思考,将删除操作变为插入操作,相邻点合并。 考虑到序列里面的数都为正数,那么直接取出子树权值和最大的即可。 预计时间复杂度 \(O(n)\),上界 \(O(n \ 阅读全文
posted @ 2022-04-14 21:40 Plozia 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 以下用 \(ev\) 表示奇数堆的个数,\(od\) 表示偶数堆的个数,不考虑无解的情况。 首先这里有三个式子: \(奇数+奇数=偶数\) \(偶数+偶数=偶数\) \(奇数+偶数=奇数\) 所以我们可以看见,对于奇数堆而言,我们需要有奇数个奇数来填充每一堆,而这是 CF 的构造题,于是对于奇数堆: 阅读全文
posted @ 2022-04-14 21:39 Plozia 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 这是一道数学题。 假设边长为 \(a,b\),那么: \(\dfrac{P^2}{S}=\dfrac{(2a+2b)^2}{ab}=\dfrac{4a^2+8ab+4b^2}{ab}=4(\dfrac{a}{b}+\dfrac{b}{a})+8\) 由基本不等式, \(4(\dfrac{a}{b}+ 阅读全文
posted @ 2022-04-14 21:13 Plozia 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 先容我吐槽一句:话说老鼠竟然变成了可怕的怪物。。。。。。有那么可怕吗?好吧还真有 开始正题。 显然这是一道图论题。 我们将 \(n\) 个房间视为 \(n\) 个点,将 \((i,a_i)\) 连一条边。 那么问题就变成了:在一张有向图上,每个点都有权值 \(c_i\),选取一些点使得所有点沿边行动 阅读全文
posted @ 2022-04-14 21:12 Plozia 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 本人坐标 ZJ,蒟蒻一枚。 Day --inf 由于 CSP-S 初赛炸了,导致我只能参加 CSP-J,貌似是个不好的征兆? Day -inf 没想到 J 320pts 竟然进入了 WC?又惊又喜。 不过我真的能拿分吗? Day 0 P.S. 此处 Day 0 相对 2021/2/5 而言。 考前模 阅读全文
posted @ 2022-04-14 21:10 Plozia 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 题目给了我们一张 DAG,对于 DAG 常用的方法就是拓扑排序。 题目要求一条从 1 到 \(n\) 的路径, 点数尽量多但是距离不能超过 \(k\),那么我们考虑 DP 解决这个问题。 设 \(f_{i,j}\) 表示从 1 开始经过 \(i\) 个点,到达 \(j\) 点的最短路径,那么首先满足 阅读全文
posted @ 2022-04-14 21:08 Plozia 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 1. 概述 Trie 树,中文名为字典树,是一种字符串的高效处理算法。 Trie 树实现的功能就是快速的查找一堆字符串里面有没有某个串是另一个串的前缀,后缀等等。 2. 详解 2.1 Trie 树的概念 Trie 树首先是一棵树,比如下面这棵树就是一棵 Trie 树。 这棵树是由 ab,abd,ac 阅读全文
posted @ 2022-04-14 21:07 Plozia 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 1. 回顾 在这两篇博文中: 数据结构专题-学习笔记:无旋平衡树(替罪羊树,fhq Treap) 数据结构专题-学习笔记:有旋平衡树(AVL 树,Splay) 我们重点学习了 4 种平衡树。 当然考虑到在 OI 的实用性以及思维性,我个人认为: FHQ Treap 和 Splay 一定要掌握! 替罪 阅读全文
posted @ 2022-04-14 21:06 Plozia 阅读(79) 评论(0) 推荐(0) 编辑
摘要: Update 2022/2/3:感谢 @aresword 大佬的建议,对文章中一个不严谨但是能过题的地方进行修改。 这是一道数学题。 前置知识: 对于一个数 \(x\),我们可以将其唯一分解成 \(p_1^{c_1} \times p_2^{c_2} \times ... \times p_k^{c 阅读全文
posted @ 2022-04-14 21:04 Plozia 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 1.概述 KMP 算法是一种字符串算法,具体解决的问题为字符串匹配问题: 给出一个模式串 \(t\),文本串 \(s\),请问 \(t\) 是否为 \(s\) 的字串 / \(t\) 在 \(s\) 中出现了几次等等问题。 后文中无特殊说明,\(n\) 为文本串 \(s\) 的长度,\(m\) 为模 阅读全文
posted @ 2022-04-14 21:01 Plozia 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 1.概述 康托展开,是全排列问题中常用的一种算法。 康托展开:已知一个 \(n\) 阶全排列 \(a\),求出这是第几个全排列(按照字典序排序)。 2.实现 例题 康托展开的公式:\(a_1 \times (n - 1)! + a_2 \times (n - 2)! +...+ a_{n - 1} 阅读全文
posted @ 2022-04-14 20:59 Plozia 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 这道题是一道二维 LIS 问题。 我们知道,一维的 LIS 有 \(O(n^2)\) 和 \(O(n \log n)\) 两种解法。考虑到这道题要输出方案,而且 \(1 \leq n \leq 5000\),那么在这道二维的 LIS 问题当中我们可以使用 \(O(n^2)\) 的算法来解决这道题。 阅读全文
posted @ 2022-04-14 20:57 Plozia 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 这道题有一点思考难度,需要根据题意与样例来思考。 首先我们考虑 \(a_i\) 在几次之后会降为 0。 接下来的分析只考虑这个柱子上面被摧毁的情况,不考虑左右的柱子高度为 0 的影响。 如果 \(a_i \leq a_{i - 1}\) 且 \(a_i \leq a_{i + 1}\),那么只有最上 阅读全文
posted @ 2022-04-14 20:56 Plozia 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 这道题看似可以线段树乱搞,但是真正用线段树就会发现根本没有用。 因此我们考虑根号算法。 难道是分块?错!还有一种根号算法——根号分治。 根号分治的思想就是设定阈值 \(S\) ,大于阈值的暴力计算,小于阈值的快速计算,而取 \(S = \sqrt n\) 时最优(不要问我怎么证明)。 那么这道题,我 阅读全文
posted @ 2022-04-14 20:53 Plozia 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 这道题好像很烦,我第一眼看过去确实没有任何思路。 但是仔细分析题目后,我们会发现: \(c=1\) 时,答案为 0,但是好像没有这个点? \(c > n\) 时,答案为序列总和。 \(c = n\) 时,答案为序列总和减去最小值。 \(1 < c < n\) 且 \(n < 2 \times c\) 阅读全文
posted @ 2022-04-14 20:50 Plozia 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 看到长这样的题目,显然是莫队板子题。 但是不知道为什么很多人写的都是 \(2 \times cnt_x + 1\) 之类的?好像直接先减再加不就好了?公式都不用推。 注意指针顺序以及 long long。 目前 CF 的机子上已经不需要用 %l64d 输出 long long,直接 %lld 输出即 阅读全文
posted @ 2022-04-14 20:49 Plozia 阅读(30) 评论(0) 推荐(0) 编辑