AtCoder Beginner Contest 148

ABC 148

第一次打abc,记录一下

Task Name Time Limit Memory Limit
A Round One 2 sec 1024 MB
B Strings with the Same Length 2 sec 1024 MB
C Snack 2 sec 1024 MB
D Brick Break 2 sec 1024 MB
E Double Factorial 2 sec 1024 MB
F Playing Tag on Tree 2 sec 1024 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)=1×3×5×\dots×n\)

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

\(n\)为偶数,显然\(f(n)=2×4×6×8×10×\dots×n\)

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))\)即可。

posted @ 2019-12-23 10:30  badcw  阅读(361)  评论(0编辑  收藏  举报