多校4题解

1001

   定位:中等题 LCT和树链剖分都可以做,简单起见就说说树链剖分,LCT类似。 

   首先注意到一条路径上是log n条重链和log n条轻边。

   当我们给一个点的所有边上的邻居边打标记时,如果该点在重链上,会影响他的轻孩子们。(要特殊考虑链头和链尾之类的)。

   那么我们可以给重链上的点打标记,表示这个点的轻孩子们被翻转了没。

   那么一个轻边就可以直接询问出来。复杂度:O(n log2 n)

 

1002

   定位:中等题

   首先二分答案,并且注意到一个点开始的子串越长字典序越大。

   那么现在问题变成了给你一个环,每个点i能往后延伸长度ri,问存不存在一个 从某点跳k次绕一圈跳回自己的路径。

   首先递归删掉ri = 0的点,因为这些点不能经过。那么现在所有点的r>0,那么如果还有n个点,那么最多跳n次。注意到可行次数显然是一个区间,那么只要求出最小跳的次数就行了。

   最小跳的次数就是枚举一个开始点然后不停往后狂跳。

 

   ADD

   n ≤ 10w的话怎么做?

 

1003

   定位:简单题

   考虑dpi,j 表示S的前i个和的前j个的LCT。 注意到,如果我们枚举了一个长度为i的串,我们关心哪些信息?有意义的只有dpi,∗的值!对于i,我们暴力记录所有dpi,∗的值来。

   注意到dpi,j dpi,j1最多差1,因此状态数量很少。

 

1004

   定位:简单题

   不妨枚举ab作为直径,然后计算该情况的概率。注意到如果不考虑字典序这其实等价于其它选的点满足Dc≤ Dab  并且 Dc≤ Dab

   考虑字典序也类似。

 

1005

   定位:送分题

   大家肯定会做吧。

 

1006

   定位:中等题

多校4题解_第1张图片

1007

   定位:中等题

   首先我们不妨枚举所有点的距离标号,> k的就看成k + 1就可以了。 然后考虑一个距离标号为b的点。

   对于一个标号为a的点,如果a < b,那么ab的边要≥ − a,并且需要存在一个点使得那条边是− a

   这个可以用dp来计算方案数。 当然这样复杂度还是不够,注意到其实没必要枚举点的具体标号,只要分别枚举每种标号的点有几个就可以了。

 

   ADD

   有多项式算法吗?

 

1008

   定位简单题 如果知道了该点离ab中的a近一点,这实际上意味着确定了一个半平面,左侧是该点可能的区域。

   我们不妨枚举离该点第二近的是哪个,再枚举第一近的是哪个,然后平面切割出这种情况下的多边形。

   然后进行简单的积分就能计算出答案了。

 

   ADD

   第k远当然也是可做的。

 

1009

   四边形不等式优化存在一定问题,暂时没有解法

 

1010

   定位:送分题

   和C类似,直接存到目前为止,哪些数可以被拼出来。

 

   ADD

   有更好的做法吗?

 

 

你可能感兴趣的:(多校4题解)