ABC 148

第一次打abc,记录一下

ARound One2 sec1024 MB
BStrings with the Same Length2 sec1024 MB
CSnack2 sec1024 MB
DBrick Break2 sec1024 MB
EDouble Factorial2 sec1024 MB
FPlaying Tag on Tree2 sec1024 MB

6/6,rank 182 Rating 859 + 355 = 1214

确实跟cfdiv3差不多

A

输入123中两个数,输出另外一个数
$$
res = 6 - x - y
$$

B

输入两个串,交叉输出

C

求AB的lcm
$$
res = a / gcd(a,b) *b
$$

D

给一个序列,求删除一些数,使得剩余的序列是$1\to k$的形式

求最长上升连续子序列

$dp[i]$表示$1\to i$有没有出现过,扫一遍整个序列

for (int i = 1; i <= n; ++i) {
    if (dp[a[i] - 1]) dp[a[i]] = 1;
}

取最大的$i$满足$dp[i]=1$即是保留的序列

E

定义隔项阶乘函数:
$$
f(n) = 1 (n < 2) \
f(n) = n * f(n - 2) (else)
$$
求$f(n)$末尾0的个数

分奇偶讨论即可

若$n$为奇数,显然$f(n)=135\dotsn$

没有2因子,不会出现末尾0输出0

若$n$为偶数,显然$f(n)=246810\dotsn$

2因子数量总是大于5因子,相当于求$1\to n/2$中5因子的数量

F

给一棵树,x和y博弈,首先x在u点,y在v点,游戏结束条件是x和y重合,x先动,x希望游戏更晚结束,y希望游戏更早结束,求y在游戏结束前走的步数

设游戏在p点结束,那么$dist(p,u) \le dist(p,v)$显然成立,当这个条件满足时可以观察出必然可以走到这个点(树上两个点的距离固定而且路径固定),所以是个充要条件。

由于x先动要求答案尽量大,所以取满足条件的$max(dist(p,v))$即可。

12-21 21:52