BUPT训练随笔(BUPT '21 WINTER #13: rng_58)

久违的开坑复习啦!

Problem A. 2016(在这里就写上K-magic题解好了)

是道有趣的题,是前两场比赛的题目的弱化版(K-magic)。我们可以发现,如果一个数x由<p的质因子构成,而且他是K-magic数,那么x*p^c仍然是K-magic,因为他们所有因子的系数都乘上了(c+1)。我们不妨从这个地方入手。

很“容易”发现,非K-magic数是很少的

那么我们就考虑筛出非K-magic数。我们一开始将1加入队列,然后依次枚举质数p,考虑新数列中,大于当前数x的因数的数有几个,如果>K,则不需要加入队列,否则继续加入队列,直到队列的数不在减少。我们发现当p不断增大的时候,加入一个比较大的质数p不会让数列发生改变,经测试,我们发现当p=293时,数列不会发生浮动。而非Kmagic数在5w左右,这样我们就本题处理的时候就可以直接输出第i个k-magic数。而对于K-magic本题,我们考虑二分。不妨假设我们枚举数列中的第i个数作为最后一个数,那么n必须>a[i]-i,这样才能在塞入i个非K-magic数,这样二分check即可。

Problem B. Airports

这题也是道神题。

考试的时候是用曼哈顿距离最小生成树的结论直接做的。这题直接8个方向换成最大生成树。但是这个做法我至今都不会证。

正解说是曼哈顿距离转换为切比雪夫距离,然后Boruvka 算法,用set维护,每次找.begin即可,复杂度大常数nlog 似乎也不难写

Problem C. Jump

这题同样是神题。

队友想的神奇结论www

我们考虑一下S->a->T发生了什么 假设2*a-S=T,那么2*a=S+T,或者是S=T,即0=T-S,那么不论s,t如何选择,我们总能看成0->|t-s|或0->t+s

那么只要跑一次最短路就好了,只是建图的时候我建的是-20000~20000,我也不知道有没有超出边界还能跑出答案的。

Problem D. Merge(不会.jpg)

搬来了题解(怎么复制过来只有latex...)

给定两个长度为 n 的排列 P,Q,求将他们归并后能够形成多少个本质不同的序列。

$n leq 2 imes 10^3$。

题解
令 $f_{i,j}$ 为 P 中选了前 i 个数,Q 中选了前 j 个数,能够形成的本质不同序列个数。则显然可以由下面这个递推式得到:

$f_{i,j} = f_{i-1,j} + f_{i,j-1} - sum_{k=1}^{operatorname{lcp}(i,j)} f_{i-k,j-k} imes g_{k}$
其中 $g_k$ 是容斥系数。这相当于将两个长度为 k 的排列 ${1,2,3 cdots k}$ 合并在一起,且不存在一个长度为 2i 的后缀满足能够表示为两个长度为 i 的排列 ${1,2,3 cdots i}$ 合并在一起。注意到这就是卡特兰数,即 $g_k = C_{k-1}$。

拉一个卡特兰数的递推式:

$C_n = egin{cases} 1 & (n = 0 lor n = 1) \ sum_{0 leq j < n} C_j C_{n-j-1} & ext{otherwise} \ end{cases}$

Problem E. Mirror Rice Cake

排序送分,应该没有人不会吧

Problem F. Number Cards

我们可以发现n个点所属区间的分类最多不超过n种,即数论分块,我们考虑每次数论分块后check,统计答案即可。卡卡常就可以过去了wwww每次for一遍n个点,找整除分块的最小分界点即可,这样复杂度是Onlogn*n*sqrt(1e9)

Problem G. Paint(不会!)

Problem H. Random Walk(暂留)

这题是神题啊!究极神题.jpg

我们可以先搞出n步都不重复经过格子的结果,然后再进行容斥。我们考虑一个格子重复经过两次是什么情况,那么无非就是走了一个长度为k的环,所以我们只需要统计这样的环的个数即可

我们先考虑如何计算出走长度为k且不重复的方案数fk

我们考虑辅助函数dk表示走k步回到原点,不考虑是否重复方案数

那么可以通过容斥f[i]=d[i]-d[j]*f[i-j]得到答案

最后经过ans-=fi*(n-i+1)(枚举环是从哪一步开始的)

即可获得答案

Problem I. Robots

这题是比较有趣的,首先显然可以离散建图,然后我们发现如果按照方向分解的话,最劣会出现n^2条边,我们考虑同一条线上的同一个方向的两个机器人,<-a....<-b显然a左边的点只需要连接到a即可,连接到b是没有必要的。那么边数就降到的On,直接最短路就完事了

Problem J. Ropes

prufer裸题,这么送分不会有人不会做把

Problem K. Stains

看完题解仍然觉得很神,还是留个链接吧

传送门

Problem L. String Modification

直接DP就完事了,反正巨简单

Problem M. Team Competition(不会)

原文地址:https://www.cnblogs.com/ghostfly233/p/14509122.html