摘要: 用途 竞赛中一些树上问题会涉及到从树中取出一些点进行询问。若数据保证总点数$M$小于等于一个数例如$2 10^5$之类的时候,我们可以通过构造一颗虚树来减少点的数量,从而保证总复杂度符合要求。 构造 虚树的构造利用了一个栈。现有两种复杂度相同但常数不同的构造方法。实际运行中时间差别肉眼可见。 在一棵 阅读全文
posted @ 2017-04-17 20:42 permui 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 题目 给出长度为$2^n$ $(n\le20)$的数组$f$和$g$,求 $\sum H(a) (a+1) \ mod \ 2^{32}$数组,定义为 $$H(a)={ \sum}_{b|c=a}f[b] g[c]$$ <! more 分析 好题,学到了很多东西。 看懂题之后就想到zwl之前学过的F 阅读全文
posted @ 2017-04-17 20:41 permui 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 题目 有三个操作: $change \ u \ v \ a \ b$ : $u$到$v$路径上的点点权加上$a+k b$,$k$为第几个点,$u$为第0个点。 $query \ u \ v$ : 询问$u$到$v$路径上的点权和。 $roll \ w$ : 回到第$w$个$change$之后的状态。 阅读全文
posted @ 2017-04-17 20:41 permui 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题目 共$n$次操作,每次向数集中插入或删除一个数,并询问此时的最大异或和。 <! more 分析 看到最大异或和就想到线性基,但是线性基是显然不支持删除的。 题目所需要的就是按时间顺序维护一个线性基。对于这一类插入,删除,整体查询的离线问题,我们可以用线段树(同理cdq分治)解决。 通过离线询问, 阅读全文
posted @ 2017-04-17 20:40 permui 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 题目 给到$N$ $(N{\le}50)$个点,求两个不相交的凸包,使得其中面积较大的那个面积最小。 <! more 分析 比赛的时候还剩一个半小时写这个题,其实就是很简单的计算几何,但是因为一些原因想复杂了。这里还学到了向量叉积。 因为$N$很小,所以可以直接枚举两个点,作出一条直线,把点分到两边 阅读全文
posted @ 2017-04-17 20:40 permui 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 题目 给一个$n\ m$的矩阵,每个点可能为“.”或“ ”,有多少种方法把矩阵中的点全部连接起来,并且每两个点之间只有一条路径。 <! more 分析 题目所求的是一个矩阵内的生成树计数。很容易把这个矩阵转化为一个图。现在我们要在这个图上求生成树计数。 这里要用到Matrix Tree定理。 这个定 阅读全文
posted @ 2017-04-17 20:39 permui 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 题目 一个无向连通图,顶点从$1$编号到$N$$(n\le 500)$,边从$1$编号到$M$。 小Z在该图上进行随机游走,初始时在1号顶点,每一步小Z以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和 阅读全文
posted @ 2017-04-17 20:37 permui 阅读(635) 评论(0) 推荐(0) 编辑
摘要: "题目" 这道题的题意理解很重要,直接写原题了。 小林把人体需要的营养分成了$n$种,他准备了2套厨师机器人,一套厨师机器人有$n$个,每个厨师机器人只会做一道菜,这道菜一斤能提供第$i$种营养$x_i$微克。想要吃这道菜的时候,只要输入一个数,就能吃到对应数量的这道菜了。为防止摄入过量对身体造成的 阅读全文
posted @ 2017-04-17 20:37 permui 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 题意 令$f(i)$表示$i$的约数个数,求$\Sigma^n_{i=1}f(i)$. <! more 做法 我们直接算每个数的贡献,问题可以转化成每个数在$1$到$n$中有多少个倍数,累加答案。 代码 c++ include using namespace std; int main() { in 阅读全文
posted @ 2017-04-17 20:36 permui 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目 给出一个无向图,两个人初始在两个点上。当一个人在一个点$i$上的时候,每一次,他有$p[i]$的概率留在原位,有$1 p[i]$的概率等概率地选择直接连边的一个点走出去。当两个人在同一时刻走到同一个点,那么他们相遇,过程结束。现在求他们在每一个点相遇的概率。 <! more 分析 看似这是一个 阅读全文
posted @ 2017-04-17 20:36 permui 阅读(699) 评论(0) 推荐(1) 编辑
摘要: 定义 对于一个数集$A$,它的线性基是一个最小的数集$B$,使得$A$中任意一个数可以通过$B$中的一些数异或得到。 性质 定义 线性基的异或集合中不会出现0 线性基中每个数最高位不同 线性基中数互相异或不会改变异或集合 求法 下面的求法都基于这样一个性质: 对于一个数集中的两个数$a$和$b$,将 阅读全文
posted @ 2017-04-17 20:35 permui 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 简介 定义 左偏树类似一个堆的结构,支持堆的所有普通操作,同时还支持合并,所以是一种可并堆。左偏树的所有操作时间复杂度均为$logn$级别。 性质 考虑两个堆的合并操作,我们可以递归处理。以小根堆为例。 注意到这个方法的复杂度主要取决于链上没有左儿子或右儿子的最高点的深度。考虑优化算法。我们定义$d 阅读全文
posted @ 2017-04-17 20:34 permui 阅读(246) 评论(0) 推荐(0) 编辑
摘要: "题目" 定义: $$ \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 分析 本来是学莫比乌斯反演 阅读全文
posted @ 2017-04-17 20:32 permui 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 题目 给到一个矩阵,有些格子上是草,有些是水。需要用宽度为1,长度任意的若干块木板覆盖所有的水,并不能覆盖草,木板可以交叉,但只能横竖放置,问最少要多少块板。 <! more 分析 经典的矩阵二分图构图和最小点覆盖。 无非就是两种方向,横向和竖向。我们把水块连续的编成同一号,那么对于一个点,它会有一 阅读全文
posted @ 2017-04-17 20:32 permui 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 题目 给定$n\ (n\le 2000)$个坐标,求四个坐标使得围起来的四边形面积最大。 <! more 分析 最暴力的想法是枚举四个点,然而肯定超时。接着不知道怎么想到中途相遇,然而一点关系都没有。这里用到了一个单调性: 如果在凸包上确定了一个点$x$,令$x$逆时针方向的第一个点为$y$,这时确 阅读全文
posted @ 2017-04-17 20:31 permui 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 题目 $N$座高楼,高度为$1 N$的不同的数,从左向右可以看到$F$座,从右向左可以看到$B$座,共有多少种可能?询问次数不超过1e5,$n\le 3000$。 <! more 分析 容易发现,最高的楼一定是看得到的,并且分开左右两边。所以现在我们考虑剩下的$N 1$座楼。如果确定了一组楼的高度, 阅读全文
posted @ 2017-04-17 20:31 permui 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目 一颗带点权的树,根为1,实现下列三种操作: $Q\ x$ 求点$x$到根的点权和 $C\ x\ y$ 把$x$的父亲换成$y$ $F\ x\ y$ 把$x$的子树中每个点的点权点权增加$y$ <! more 分析 写了一半发现lct做不了,因为有子树修改。然而zwl说,由于树的形态没有改变,可 阅读全文
posted @ 2017-04-17 20:31 permui 阅读(441) 评论(0) 推荐(0) 编辑
摘要: "题目" 斐波那契数列$f$,$f\_1=f\_2=1,\ f\_n=f\_{n 1}+f\_{n 2}\ (n 2)$。 给定长度为$n\ (n\le 30000)$的数列$a$,$q$次询问,每次将$a$的区间$[l,r]$排序去重,设得到$k$个数: $$ \begin{align} ans= 阅读全文
posted @ 2017-04-17 20:30 permui 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 题目 有$n$个房间,$n$个钥匙,每个钥匙随机出现在一个房间里,一个房间里有且仅有一个钥匙。我们现在手上没有钥匙,但我们要搜索所有的房间,所以我们有$k$次机会把一个房间炸开。一号房间里住着一个重要的人,所以一号房间不能炸。给出$n$,$k$,求我们能够成功搜索所有房间的概率。 <! more 分 阅读全文
posted @ 2017-04-17 20:24 permui 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 简介 斯特林数是组合数学中的一个重要内容,有许多有用的性质。它由十八世纪的苏格兰数学家James Stirling首先发现并说明了它们的重要性。 斯特林数主要处理的是把$N$个不同的元素分成$k$个集合或环的个数问题。现在我们说的斯特林数可以指两类数,分为第一类斯特林数和第二类斯特林数,其中第一类斯 阅读全文
posted @ 2017-04-17 20:24 permui 阅读(5695) 评论(2) 推荐(4) 编辑