摘要:
用途 竞赛中一些树上问题会涉及到从树中取出一些点进行询问。若数据保证总点数$M$小于等于一个数例如$2 10^5$之类的时候,我们可以通过构造一颗虚树来减少点的数量,从而保证总复杂度符合要求。 构造 虚树的构造利用了一个栈。现有两种复杂度相同但常数不同的构造方法。实际运行中时间差别肉眼可见。 在一棵 阅读全文
posted @ 2017-04-17 20:42
permui
阅读(372)
评论(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
阅读(369)
评论(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
阅读(258)
评论(0)
推荐(0)
摘要:
题目 共$n$次操作,每次向数集中插入或删除一个数,并询问此时的最大异或和。 <! more 分析 看到最大异或和就想到线性基,但是线性基是显然不支持删除的。 题目所需要的就是按时间顺序维护一个线性基。对于这一类插入,删除,整体查询的离线问题,我们可以用线段树(同理cdq分治)解决。 通过离线询问, 阅读全文
posted @ 2017-04-17 20:40
permui
阅读(361)
评论(0)
推荐(0)
摘要:
题目 给到$N$ $(N{\le}50)$个点,求两个不相交的凸包,使得其中面积较大的那个面积最小。 <! more 分析 比赛的时候还剩一个半小时写这个题,其实就是很简单的计算几何,但是因为一些原因想复杂了。这里还学到了向量叉积。 因为$N$很小,所以可以直接枚举两个点,作出一条直线,把点分到两边 阅读全文
posted @ 2017-04-17 20:40
permui
阅读(339)
评论(0)
推荐(0)
摘要:
题目 给一个$n\ m$的矩阵,每个点可能为“.”或“ ”,有多少种方法把矩阵中的点全部连接起来,并且每两个点之间只有一条路径。 <! more 分析 题目所求的是一个矩阵内的生成树计数。很容易把这个矩阵转化为一个图。现在我们要在这个图上求生成树计数。 这里要用到Matrix Tree定理。 这个定 阅读全文
posted @ 2017-04-17 20:39
permui
阅读(305)
评论(0)
推荐(0)
摘要:
题目 一个无向连通图,顶点从$1$编号到$N$$(n\le 500)$,边从$1$编号到$M$。 小Z在该图上进行随机游走,初始时在1号顶点,每一步小Z以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和 阅读全文
posted @ 2017-04-17 20:37
permui
阅读(660)
评论(0)
推荐(0)
摘要:
"题目" 这道题的题意理解很重要,直接写原题了。 小林把人体需要的营养分成了$n$种,他准备了2套厨师机器人,一套厨师机器人有$n$个,每个厨师机器人只会做一道菜,这道菜一斤能提供第$i$种营养$x_i$微克。想要吃这道菜的时候,只要输入一个数,就能吃到对应数量的这道菜了。为防止摄入过量对身体造成的 阅读全文
posted @ 2017-04-17 20:37
permui
阅读(315)
评论(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
阅读(206)
评论(0)
推荐(0)
摘要:
题目 给出一个无向图,两个人初始在两个点上。当一个人在一个点$i$上的时候,每一次,他有$p[i]$的概率留在原位,有$1 p[i]$的概率等概率地选择直接连边的一个点走出去。当两个人在同一时刻走到同一个点,那么他们相遇,过程结束。现在求他们在每一个点相遇的概率。 <! more 分析 看似这是一个 阅读全文
posted @ 2017-04-17 20:36
permui
阅读(722)
评论(0)
推荐(1)
摘要:
定义 对于一个数集$A$,它的线性基是一个最小的数集$B$,使得$A$中任意一个数可以通过$B$中的一些数异或得到。 性质 定义 线性基的异或集合中不会出现0 线性基中每个数最高位不同 线性基中数互相异或不会改变异或集合 求法 下面的求法都基于这样一个性质: 对于一个数集中的两个数$a$和$b$,将 阅读全文
posted @ 2017-04-17 20:35
permui
阅读(583)
评论(0)
推荐(0)
摘要:
简介 定义 左偏树类似一个堆的结构,支持堆的所有普通操作,同时还支持合并,所以是一种可并堆。左偏树的所有操作时间复杂度均为$logn$级别。 性质 考虑两个堆的合并操作,我们可以递归处理。以小根堆为例。 注意到这个方法的复杂度主要取决于链上没有左儿子或右儿子的最高点的深度。考虑优化算法。我们定义$d 阅读全文
posted @ 2017-04-17 20:34
permui
阅读(269)
评论(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
阅读(1037)
评论(0)
推荐(0)
摘要:
题目 给到一个矩阵,有些格子上是草,有些是水。需要用宽度为1,长度任意的若干块木板覆盖所有的水,并不能覆盖草,木板可以交叉,但只能横竖放置,问最少要多少块板。 <! more 分析 经典的矩阵二分图构图和最小点覆盖。 无非就是两种方向,横向和竖向。我们把水块连续的编成同一号,那么对于一个点,它会有一 阅读全文
posted @ 2017-04-17 20:32
permui
阅读(314)
评论(0)
推荐(0)
摘要:
题目 给定$n\ (n\le 2000)$个坐标,求四个坐标使得围起来的四边形面积最大。 <! more 分析 最暴力的想法是枚举四个点,然而肯定超时。接着不知道怎么想到中途相遇,然而一点关系都没有。这里用到了一个单调性: 如果在凸包上确定了一个点$x$,令$x$逆时针方向的第一个点为$y$,这时确 阅读全文
posted @ 2017-04-17 20:31
permui
阅读(518)
评论(0)
推荐(0)
摘要:
题目 $N$座高楼,高度为$1 N$的不同的数,从左向右可以看到$F$座,从右向左可以看到$B$座,共有多少种可能?询问次数不超过1e5,$n\le 3000$。 <! more 分析 容易发现,最高的楼一定是看得到的,并且分开左右两边。所以现在我们考虑剩下的$N 1$座楼。如果确定了一组楼的高度, 阅读全文
posted @ 2017-04-17 20:31
permui
阅读(214)
评论(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
阅读(472)
评论(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
阅读(275)
评论(0)
推荐(0)
摘要:
题目 有$n$个房间,$n$个钥匙,每个钥匙随机出现在一个房间里,一个房间里有且仅有一个钥匙。我们现在手上没有钥匙,但我们要搜索所有的房间,所以我们有$k$次机会把一个房间炸开。一号房间里住着一个重要的人,所以一号房间不能炸。给出$n$,$k$,求我们能够成功搜索所有房间的概率。 <! more 分 阅读全文
posted @ 2017-04-17 20:24
permui
阅读(511)
评论(0)
推荐(0)
摘要:
简介 斯特林数是组合数学中的一个重要内容,有许多有用的性质。它由十八世纪的苏格兰数学家James Stirling首先发现并说明了它们的重要性。 斯特林数主要处理的是把$N$个不同的元素分成$k$个集合或环的个数问题。现在我们说的斯特林数可以指两类数,分为第一类斯特林数和第二类斯特林数,其中第一类斯 阅读全文
posted @ 2017-04-17 20:24
permui
阅读(6192)
评论(2)
推荐(4)
摘要:
给定一个长度为$n(n\le 5\times 10^5)$的字符串,求它的第$k$小字串。有两种模式: $Type=0$,不同位置的相同字串只算一个 $Type=1$,不同位置相同字串算多个 Sample Input Sample Output <! more 分析 我们知道,后缀自动机的从小到大遍 阅读全文
posted @ 2017-04-17 20:23
permui
阅读(278)
评论(0)
推荐(0)
摘要:
题目 $S(i,j)$表示第二类斯特林数,求: $$ f(n)=\sum _{i=0}^n\sum _{j=0}^iS(i,j) 2^j j! $$ <! more 分析 公式推理很简单,关键是用到了第二类斯特林数的通项公式和 组合数展开 的方法。 $$ \begin{aligned} f(n)&= 阅读全文
posted @ 2017-04-17 20:23
permui
阅读(190)
评论(0)
推荐(0)
摘要:
"题目" 给出一棵树,求一种分块方案,使得每个块的大小$size\in [B,3B]$。每个块还要选一个省会,省会可以在块外,但是省会到块内任何一个点路径上的所有除了省会的点都必须属于这个块。$n\le 1000$。 <! more 分析 一次dfs即可解决。做法如下: 任意选取一个点开始dfs 对 阅读全文
posted @ 2017-04-17 20:22
permui
阅读(460)
评论(0)
推荐(0)
摘要:
给出一个字符串,一个子串的出现值为字串出现次数乘以长度,求所有回文串中最大的出现值。 <! more 分析 回文自动机模版题,建出自动机后直接统计即可。 回文自动机 类似于后缀自动机,不过一条边$(u,v,c)$的含义是在$u$点的串左右两边加上字母$c$可以得到$v$点代表的串。它的$fail$指 阅读全文
posted @ 2017-04-17 20:22
permui
阅读(237)
评论(0)
推荐(0)
摘要:
题目 ![problem][1] [1]: http://www.lydsy.com/JudgeOnline/upload/201310/11.jpg <! more 分析 第一次做这种题,其实很简单。 只能经过一次的博弈可以考虑转化为二分图博弈。 棋盘上有黑白色的棋子,可以把这个游戏看作 空格在棋 阅读全文
posted @ 2017-04-17 20:21
permui
阅读(306)
评论(0)
推荐(0)
摘要:
"题目" 给出一个初始字符串$s$,支持两种操作: 在字符串后面添加一个字符串($s+=t$) 询问一个字符串在$s$中出现了几次 设字符串最终长度为$n$,询问次数为$q$,询问字符串总长为$m$,$n\le 6\times 10^5, q\le 10^4, m\le 3\times 10^6$ 阅读全文
posted @ 2017-04-17 20:21
permui
阅读(194)
评论(0)
推荐(0)
摘要:
问题 给出$a,b,p$,求最小的$x$使得$a^x\equiv b\mod p$。 <! more BSGS算法 Baby Steps Giant Steps算法可以在$\sqrt p$的时间内求解这个问题,它利用了两个不同步长的遍历。 $$ \begin{aligned} 令m&=\sqrt p 阅读全文
posted @ 2017-04-17 20:20
permui
阅读(376)
评论(0)
推荐(0)
摘要:
题目 递归定义 括号序列 : 空串是括号序列 (A)是一个括号序列,其中A为括号序列 AB是一个括号序列,其中A,B均为括号序列 定义 严格括号序列 为形如(A)的括号序列,其中A为括号序列。 给出一个长度为$n(n\le 10^3)$的合法括号序列,两个人进行游戏,每次一个人取走一个严格括号序列, 阅读全文
posted @ 2017-04-17 20:20
permui
阅读(437)
评论(0)
推荐(0)
摘要:
题目 给出一个有向无环图,要在上面安放祭祀点。两个祭祀点必须不可达,求最多能安放多少个祭祀点。 <! more 分析 由于一条无法再延伸链上只能安放一个祭祀点,而我们要求的是最多能安放祭祀点的个数,所以要求的就是最长反链的长度。由Dilworth定理得出,最长反链长度=最小链覆盖数,所以问题就转化成 阅读全文
posted @ 2017-04-17 20:19
permui
阅读(427)
评论(0)
推荐(0)
摘要:
定义 强连通分量 是指 有向图 的一个极大子图使得其中每个点都可以到达其他所有点。 双连通分量 是指 无向图 中的一个极大子图,分为两种: 点双连通分量:至少删去两个点才能使子图不连通 边双连通分量:至少删去两条边才能使子图不连通 图的连通性问题一般都有对应的Tarjan算法求解,一个著名的例子就是 阅读全文
posted @ 2017-04-17 20:19
permui
阅读(1136)
评论(0)
推荐(0)
摘要:
题目 给出一个由AGTC组成的字符串$S$,长度为$n$,对于每个$i\in [0,n]$,问有多少个长度为$m$,仅含有AGTC的字符串$T$使得$S$与$T$的最长公共子串长度为$i$。$(n\le 15,m\le 1000)$ Sample Input Sample Output <! mor 阅读全文
posted @ 2017-04-17 20:18
permui
阅读(845)
评论(0)
推荐(0)
摘要:
"题目" 给出一个长度为$n$的字符串$s$,令$T_i$表示$s$从$i$开始的后缀,求: $$ \begin{aligned} \sum _{i=1}^{n 1}\sum _{j=i+1}^{n}len(T_i)+len(T_j) 2lcp(T_i,T_j) \end{aligned} $$ < 阅读全文
posted @ 2017-04-17 20:18
permui
阅读(133)
评论(0)
推荐(0)
摘要:
题目 有很多小木棍需要机器处理。每个小木棍有重量和长度两个属性。不断把小木棍放入机器中,如果小木棍$a$放完后放入小木棍$b$,那么如果$a.weight<! more 分析 这题的做法有两种做法,其实差不多。 我们考虑贪心,先把小木棍按$weight$递增排序($weight$相等的$length 阅读全文
posted @ 2017-04-17 20:18
permui
阅读(141)
评论(0)
推荐(0)
摘要:
问题 给出$n$次多项式$A(x)$,$m$次多项式$B(x)$,求多项式$D(x)$,$R(x)$使得$$A(x)=B(x)D(x)+R(x)$$,满足$deg\le n m,deg\ R include include include using namespace std; typedef l 阅读全文
posted @ 2017-04-17 20:17
permui
阅读(2200)
评论(0)
推荐(0)
摘要:
"题目" 给出$n$个互异的正整数序列,$c_1,c_2...c_n$。定义一颗带点权树的权值为所有点的权值和。给出一个整数$m$,请计算对于所有的$i=1,2,3...,m$,用$c$中的数能组成多少不同的二叉树(每个数可以重复使用)且二叉树的权值为$i$。答案对$7 17 2^{23}+1=99 阅读全文
posted @ 2017-04-17 20:17
permui
阅读(822)
评论(2)
推荐(1)
摘要:
学会网络流算法后,我们要做的就是把问题转化成网络流问题。 搭配飞行员 求二分图最大匹配。 分析 网络流建模要找到问题的关键特点,用连边,流量(以及费用)把原问题转化成网络流问题,包括最大流,最小割,费用流。 二分图最大匹配的特点是 每个点最多属于一条匹配边 。这相当于是说,每个点只能流过一次。要求的 阅读全文
posted @ 2017-04-17 20:16
permui
阅读(372)
评论(0)
推荐(0)
摘要:
终于写了一次可持久化Treap,做的是可持久化序列的模板题。 Treap Treap=Tree+Heap,是一个随机化的数据结构。它的每个节点至少有两个关键字,一个是我们要存储的$val$,一个是随机堆关键字,我把它称为$hp$。Treap满足的性质是$val$从小到大,并且每个节点的$hp$都小于 阅读全文
posted @ 2017-04-17 20:15
permui
阅读(2039)
评论(2)
推荐(0)
摘要:
如果需要动态维护后缀数组,支持在字符串前端插入一个字符,询问后缀的大小关系,如何做呢? 这是一个不断插入的问题,可以从增量的角度考虑。我们在前端插入一个字符,其实就是插入了一个新的后缀。我们的问题其实就是这个后缀排名多少。我们可以用平衡树维护一下后缀数组,从根节点开始二分比较这个后缀的大小,看看它应 阅读全文
posted @ 2017-04-17 20:14
permui
阅读(1863)
评论(0)
推荐(0)
摘要:
题目 给定一个边带正权的连通无向图$G=(V,E)$,其中$N=|V|$,$M=|E|$,$N$个点从$1$到$N$依次编号,给定三个正整数$u$,$v$,和$L$ $(u≠v)$,假设现在加入一条边权为$L$的边$(u,v)$,那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也 阅读全文
posted @ 2017-04-17 20:13
permui
阅读(383)
评论(0)
推荐(0)
摘要:
给出平面上一些点,和连接它们的带权有向边,求把所有点连起来的最小总权值。 分析 由于这里边是有向的(unidirectional),所以这是经典的最小树形图问题,可以说是最小树形图的模板题。 代码 这个写法是我乱想的。最近写图啊树啊都喜欢开一个结构体~ 这个代码在poj上交,如果用g++的话会WA, 阅读全文
posted @ 2017-04-17 20:13
permui
阅读(174)
评论(0)
推荐(0)
摘要:
最小树形图是在一个有向图中,找到一颗有向树使得边权和最小。 <! more 首先问题是为什么不能直接用kruskal或prim来做。考虑这个例子: 由于$1\to 3,1\to 2$的边权是一样的,所以都有可能被第一次选到,而如果选了$1\to 3$,那么很明显是错误的。但是如果是无向图就不会有这个 阅读全文
posted @ 2017-04-17 20:12
permui
阅读(224)
评论(0)
推荐(0)
摘要:
给出一个有向图,求最小树形图和它的最小的根。 分析 这个题又写了一晚上~我之前的朱刘算法写法是我乱想的,只有那道题可以过……所以去找了一份代码来看,发现我的写法超级麻烦啊,所以就学习了一下那种写法,非常漂亮,但是有一些判断要考虑。 这是一个不定根问题,经典解决方法是添加一个超级根,向每个点连一条长度 阅读全文
posted @ 2017-04-17 20:11
permui
阅读(328)
评论(0)
推荐(0)
摘要:
多次学然后多次不会之后,我决定写一篇东西来记录一下这个方法。 我们要做的是线性递推出$[1,p)$的所有数的逆元。 $$ p=ai+b \\ ai+b\equiv 0\mod p \\ ai\equiv b \\ i^{ 1}\equiv ab^{ 1} $$ 由于$a=\lfloor \frac{ 阅读全文
posted @ 2017-04-17 20:10
permui
阅读(609)
评论(0)
推荐(0)
摘要:
给出$n,m,x,S$,其中$S\subseteq [0,m)$,问有多少个长度为$n$的数列$a$使得$a_i\in S$,并且数列中所有元素的乘积mod $m$为$x$。 答案对$1004535809=479\times 2^{21}+1$取模。$m$为质数。$n\le 10^9,m inclu 阅读全文
posted @ 2017-04-17 20:10
permui
阅读(237)
评论(0)
推荐(0)
摘要:
Lucas定理解决的问题是组合数取模。数学上来说,就是求: $$ \binom n m\mod p $$ 这里$n,m$可能很大,比如达到$10^{15}$,而$p$在$10^9$以内。显然运用常规的阶乘方法无法直接求解,所以引入Lucas定理。 Lucas定理 把$n$和$m$写成$p$进制数的样 阅读全文
posted @ 2017-04-17 20:09
permui
阅读(3678)
评论(2)
推荐(6)
摘要:
给出一个$n\times m$的01矩阵,每行最多有$c$个1,求一个精确覆盖,即选出一些行使得每列有有且仅有一个1。输出方案。 分析 被这个题坑到了啊!!第一次上HUSTOJ做题,不知道没有ONLINE_JUDGE编译参数,又WA了几个小时。 我感觉这个spj是有问题的,只处理了顺序不同的问题,而 阅读全文
posted @ 2017-04-17 20:07
permui
阅读(294)
评论(0)
推荐(0)
摘要:
题目 在平面直角坐标系上以$y=kx+b$的形式给出$n (n\le 50000)$条直线,求从无限高的地方能看到多少条直线。 分析 举几个例子发现我们要求的直线组成一个下凸的形状。所以我们只要找出直线围成的下凸包即可。 对直线排序,$k$从小到大,$b$从大到小,用一个栈维护一下。如果当前元素与栈 阅读全文
posted @ 2017-04-17 20:06
permui
阅读(190)
评论(0)
推荐(0)

浙公网安备 33010602011771号