摘要:
题目 共$n$次操作,每次向数集中插入或删除一个数,并询问此时的最大异或和。 <! more 分析 看到最大异或和就想到线性基,但是线性基是显然不支持删除的。 题目所需要的就是按时间顺序维护一个线性基。对于这一类插入,删除,整体查询的离线问题,我们可以用线段树(同理cdq分治)解决。 通过离线询问, 阅读全文
摘要:
题目 给一个$n\ m$的矩阵,每个点可能为“.”或“ ”,有多少种方法把矩阵中的点全部连接起来,并且每两个点之间只有一条路径。 <! more 分析 题目所求的是一个矩阵内的生成树计数。很容易把这个矩阵转化为一个图。现在我们要在这个图上求生成树计数。 这里要用到Matrix Tree定理。 这个定 阅读全文
摘要:
题目 一个无向连通图,顶点从$1$编号到$N$$(n\le 500)$,边从$1$编号到$M$。 小Z在该图上进行随机游走,初始时在1号顶点,每一步小Z以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和 阅读全文
摘要:
"题目" 这道题的题意理解很重要,直接写原题了。 小林把人体需要的营养分成了$n$种,他准备了2套厨师机器人,一套厨师机器人有$n$个,每个厨师机器人只会做一道菜,这道菜一斤能提供第$i$种营养$x_i$微克。想要吃这道菜的时候,只要输入一个数,就能吃到对应数量的这道菜了。为防止摄入过量对身体造成的 阅读全文
摘要:
题意 令$f(i)$表示$i$的约数个数,求$\Sigma^n_{i=1}f(i)$. <! more 做法 我们直接算每个数的贡献,问题可以转化成每个数在$1$到$n$中有多少个倍数,累加答案。 代码 c++ include using namespace std; int main() { in 阅读全文
摘要:
题目 给出一个无向图,两个人初始在两个点上。当一个人在一个点$i$上的时候,每一次,他有$p[i]$的概率留在原位,有$1 p[i]$的概率等概率地选择直接连边的一个点走出去。当两个人在同一时刻走到同一个点,那么他们相遇,过程结束。现在求他们在每一个点相遇的概率。 <! more 分析 看似这是一个 阅读全文
摘要:
定义 对于一个数集$A$,它的线性基是一个最小的数集$B$,使得$A$中任意一个数可以通过$B$中的一些数异或得到。 性质 定义 线性基的异或集合中不会出现0 线性基中每个数最高位不同 线性基中数互相异或不会改变异或集合 求法 下面的求法都基于这样一个性质: 对于一个数集中的两个数$a$和$b$,将 阅读全文
摘要:
简介 定义 左偏树类似一个堆的结构,支持堆的所有普通操作,同时还支持合并,所以是一种可并堆。左偏树的所有操作时间复杂度均为$logn$级别。 性质 考虑两个堆的合并操作,我们可以递归处理。以小根堆为例。 注意到这个方法的复杂度主要取决于链上没有左儿子或右儿子的最高点的深度。考虑优化算法。我们定义$d 阅读全文
摘要:
"题目" 定义: $$ \begin{aligned} f_d(n)=\sum _{gcd(x,n)=1} x^d \end{aligned} $$ 给定$d$和$n$ ($n$以质因数分解的形式给出),求$f_d(n)\ (mod \ 10^9+7)$。 <! more 分析 本来是学莫比乌斯反演 阅读全文
摘要:
题目 给到一个矩阵,有些格子上是草,有些是水。需要用宽度为1,长度任意的若干块木板覆盖所有的水,并不能覆盖草,木板可以交叉,但只能横竖放置,问最少要多少块板。 <! more 分析 经典的矩阵二分图构图和最小点覆盖。 无非就是两种方向,横向和竖向。我们把水块连续的编成同一号,那么对于一个点,它会有一 阅读全文