2020杭电多校

打星为 upsolve

Round 1

rank 524 (1/12)

棒子,我x你仙人.jpg

1004

签到

n>=3 都是 abcabacabc…

*1005

为什么你们都会二次剩余啊

考虑 fib 通项,将根号五用二次剩余化成常数

二项式定理展开,每一项等比求和

卡卡常,幂次对 MOD-1 取模

*1006

分块 好题

考虑将度数大于 $\sqrt{n}$ 的点记作特殊点,易知特殊点最多 $\sqrt{n}$ 个

由于其他点度数不超过 $\sqrt(n)$ 询问直接暴力

同时维护特殊点的相邻点的权值信息,这里我用了分块来保证整体复杂度在 $n\sqrt{n}$ 级别

修改一个点权值的时候只需要更新其相邻特殊点的信息即可,由于特殊点不超过 $\sqrt{n}$ 个,暴力更新的复杂度也能保证

*1009

首先按 p sort一下,用单调栈筛出 a 单调递减的所有机器人

之后按照 p 递增的顺序考虑,维护一个可行的(有机会成为领先的)机器人的集合,可以发现这是一个下凸包

新加入一条线的时候,如果和最后一条直线的交点的横坐标(时间) > 最后两个直线的交点的横坐标,就踢掉最后最后一个直线

类似于维护凸包,最后栈的大小就是答案

小心维护 p a 都相等的点,即带入构建凸包,但不算答案

*1011

字符串,我的后缀自动机卡不过去

Round 2

rank 50 (6/12)

1001

按权值 sort 一下,从后往前并查集

1005

费用流,保留每个工人极值点左右 50 个点的机器,之后费用流

每次新加边增广就行,不用重新建图

1006

取个模数算一下,O(n) 验证

1007

二分答案 + dp

二分直径长度 limit,考虑 dp $f[u][k]$ 表示 $u$ 这颗子树选 $k$ 个边反转时 叶子到 $u$ 的最长路径的长度

合并时若两条路径 > limit 则不能转移,最后看 $f[1][k]$ 是否有值

$O(kn\log{n})$

*1009

暴力

注意到对于每行一定经过偶数次,记录每次经过的 y 坐标,sort 后 $[y_{i}+1,y_{i+1}] (i = 0,2,4….)$ 就是这行经过的格子

然后暴力

1010

暴搜

1012

dp

观察答案为 $(r-l+1) + m - 2*lcs$

考虑 $f[i][j][k]$ 表示 $S[1-i]$ 匹配长度为 $j$ 的子序列,子序列在 $T$ 串的结尾为 $k$ 时子序列起点在 $S[1-i]$ 中最靠右的位置

用前缀和做一个 $O(n*m^2)$ 的 dp 即可

作者

Bakapiano

发布于

2020-07-24

更新于

2020-07-24

许可协议

评论