摘要: # 前言 记录一下,顺便捋一捋思路。 # 前置知识 - 最小生成树 $\tt{Kruskal}$ - 树上倍增 - $\tt{LCA}$ # 非严格次小生成树 有一种贪心的做法,我们先得出该无向图的最小生成树,最小生成树上的边称为树边,反之为非树边。先可以得到一个定理,次小生成树与最小生成树一定只有 阅读全文
posted @ 2023-08-29 23:35 Scorilon 阅读(78) 评论(0) 推荐(0)
摘要: # 前言 前段时间在补提高大纲,补完之后这篇博客用来记录梳理复盘提高大纲里数论的一些知识点,有错误欢迎批判捏。 # 欧拉函数 ## 定义 $\varphi(n)$ 表示小于等于 $n$ 中与 $n$ 互质的数的个数,即 $\varphi(n)= \sum ^n _{d=1} [\gcd(d,n)=1 阅读全文
posted @ 2023-08-29 23:34 Scorilon 阅读(119) 评论(0) 推荐(0)
摘要: ## 前言 线段树经常用来维护**区间信息**,支持单点修改、区间修改、单点查询、区间查询等操作。其中单点修改/查询其实可以类似地看成区间长度为 $1$ 的区间。而上面的操作时间复杂度均为 $O(\log n)$. ## 基本结构和建树 线段树是采用递归的思想来维护信息的,将每个长度不为 $1$ 的 阅读全文
posted @ 2023-02-19 21:08 Scorilon 阅读(68) 评论(0) 推荐(0)
摘要: ## 逆元 例如一个数 $a$,将 $a$ 乘上 $b$,会对 $a$ 产生一部分的贡献,我们可以通过乘上某个数 $x$ 来消除对 $a$ 的贡献,那么 $x$ 就是逆元。 ## 乘法逆元 对于一个线性同余方程 $ax \equiv 1 \pmod{b}$,我们称 $x$ 为 $a$ 在 $\bmo 阅读全文
posted @ 2023-02-12 18:46 Scorilon 阅读(146) 评论(0) 推荐(0)
摘要: 一开始考虑枚举 $i$ 或 $k$ 来统计,发现需要 $O(n^2)$ 的时间复杂度。 因此考虑枚举 $j$,我们可以用 $l_x$ 表示满足 $i const int N=3e5+5; int n; int a[N]; int l[N],r[N]; long long ans,sum; int m 阅读全文
posted @ 2023-09-03 10:37 Scorilon 阅读(20) 评论(0) 推荐(0)
摘要: 因为 $n$ 很小,所以考虑状压 dp。 令 $sta$ 为一个二进制整数,表示当前第 $i$ 个点有没有被匹配。 那么显然对于每一个 $sta$ 第 $i,j$ 两点未被匹配的都可以用边 $(i,j)$ 来转移,即 $dp_{sta \cup \{i,j\}} \gets dp_{sta}+w_{ 阅读全文
posted @ 2023-09-03 10:37 Scorilon 阅读(124) 评论(0) 推荐(0)
摘要: ### 题意 给定一个无向图,其中至多有 $50$ 个结点,求是否有欧拉回路。 ### 题解 很明显就是一个无向图求欧拉回路的板子,我们用 $\tt{Hierholzer}$,先说存图,要明确的一个点是这个无向图里是有可能有重边的,所以我们要注意记录的时候不应是单独地记录某一条边是否存在,而是要记录 阅读全文
posted @ 2023-08-29 23:40 Scorilon 阅读(16) 评论(0) 推荐(0)
摘要: 对于第二种操作,很容易想到只有 $1$ 或 $2$ 两种答案,若该区间内存在 $01$ 这个子序列,那么答案为 $2$ 反之为 $1$.可以通过对该 $01$ 串做一个前缀和,若出现 $01$ 这个子序列就累加,最后判断左右端点是否相等即可,时间复杂度 $O(n)$. 对于第一种操作,$\text{ 阅读全文
posted @ 2023-08-29 23:39 Scorilon 阅读(85) 评论(0) 推荐(0)
摘要: 赛场上思路出来了但是代码没调出来。 首先考虑右端点,很明显,要让操作后的序列字典序尽量地大,那么就要使操作后的序列第一个数尽量地大,考虑 $n$ 或 $n-1$,如果 $n$ 在原序列的第一个位置,那么此时无论怎么调整都无法使得它在新序列的第一个位置,此时就要考虑让 $n-1$ 在新序列的第一个位置 阅读全文
posted @ 2023-08-29 23:38 Scorilon 阅读(57) 评论(0) 推荐(0)
摘要: ### Updated #### 2023.07.05 修正了一处笔误,在此感谢@[DWT8125](https://www.luogu.com.cn/user/390228) ### 题解 首先先推一下柿子,因为数据范围很大,所以考虑矩阵加速递推。 根据题意给的递推式,可得: $$\begin{a 阅读全文
posted @ 2023-08-29 23:38 Scorilon 阅读(55) 评论(0) 推荐(0)
摘要: ### 总述 此题用区间 dp 解决,二维前缀和优化。 ### 朴素做法 **阶段**:自上而下数每一层。 **状态**:$dp_{i,l,r}$ 表示自上而下数第 $i$ 行中在 $[l,r]$ 摆积木的方案数。 **状态转移方程**:根据题意可知,若要在 $[l,r]$ 中摆积木,那么 $[l, 阅读全文
posted @ 2023-08-29 23:37 Scorilon 阅读(94) 评论(0) 推荐(0)
摘要: 首先考虑无解的情况,很明显 $a_n$ 必须为 $0$,否则没有解,因为如果最后一位为 $1$ 那么必须有 $n$ 这个数存在于 $b$ 序列中,而这种情况时不符合题意的。 然后考虑如何求解,先考虑一种比较特殊的情况,就是若干个 $1$ 后面接着一个 $0$,这里假设 $1$ 的数量有 $k$ 个, 阅读全文
posted @ 2023-08-29 23:37 Scorilon 阅读(35) 评论(0) 推荐(0)
摘要: 首先这是一道很明显的换根 dp。 首先注意到要拼接数,所以我们可以先处理出 $num_i=10^{x}$,使得 $10^x > a_i > 10^{x-1}$,这样方便我们后面算贡献。 我们以这棵树为例子来推状态转移方程。 ![](https://cdn.luogu.com.cn/upload/im 阅读全文
posted @ 2023-08-29 23:37 Scorilon 阅读(36) 评论(0) 推荐(0)
摘要: 先注意到我们娱乐值损耗的多少只与最后一场电影有关系,所以假设最后一场电影看的下标为 $k$,那么最后就要减去 $d \times k$。 得出这个性质之后开个小根堆反悔贪心即可,首先 $a_i0$ 的,如果还没到 $m$ 场电影,我们就直接往里塞就可以,如果到了,我们就进行反悔操作,取出已选的贡献最 阅读全文
posted @ 2023-08-29 23:36 Scorilon 阅读(27) 评论(0) 推荐(0)