2022/4/11
Posted 。✧* ꧁王者꧂✧*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022/4/11相关的知识,希望对你有一定的参考价值。
7
:
20
−
9
:
30
7:20 - 9:30
7:20−9:30
T
1
T1
T1看第一眼 , 发现是构造题 , 最开始没有什么思路 , 思考了一会儿 , 发现本质上就三种情况 :
1.
1.
1.点
C
C
C在
a
−
b
a - b
a−b这条路径上 ;
2.
2.
2. 点
C
C
C在
a
a
a左边 , 点
C
C
C在
b
b
b右边 。(这算一种)
3.
3.
3.点
C
C
C在
a
−
b
a - b
a−b这条路径的子树上 。
然后就维护两个树上倍增 ,
f
a
fa
fa和
s
o
n
son
son ,
f
a
[
x
]
[
i
]
fa[x][i]
fa[x][i]表示从
x
x
x往上跳
2
i
2^i
2i步 ,
s
o
n
[
x
]
[
i
]
son[x][i]
son[x][i]表示从
x
x
x的父亲走
x
x
x点往下走
2
i
2^i
2i步 。
这题思维难度不高 , 但是代码巨恶心巨长 , 我写了两个小时才写完 。 写完后先做后面的题了 , 准备最后再对拍 。
9
:
30
−
10
:
00
9:30 - 10:00
9:30−10:00
做
T
2
T2
T2 。
T
2
T2
T2一看就是个状压 , 但是
n
<
=
50
n <= 50
n<=50显然状压不了 。 然后怎么办呢 ???我们看到了一个性质:
a
i
−
b
i
<
=
12
a_i - b_i <= 12
ai−bi<=12 , 这个性质就是出路 , 也就是说 , 我们从小往大加点 , 加到第
i
i
i个点 , 只需要维护一下
i
−
11
i - 11
i−11 到
i
i
i这
12
12
12个点就行了 。完美解决 , 时间复杂度
O
(
n
2
2
12
)
O(n^22^12)
O(n2212) 。
T
3
T3
T3
看了一会儿 , 感觉正解应该是后缀树组或者后缀自动机什么的乱搞一下 , 但具体怎么操作我没想出来 。 就只写了
30
p
t
s
30pts
30pts的
k
m
p
kmp
kmp , 最后还
T
T
T了QWQ 。
因为
T
3
T3
T3代码细节错误导致我调了好长时间 。 于是最后没时间对拍了QWQ。
最后只有
10
p
t
s
10pts
10pts 。。。。。。
以上是关于2022/4/11的主要内容,如果未能解决你的问题,请参考以下文章