时间安排
7
:
55
−
8
:
20
7:55-8:20
7:55−8:20 把四道题都看了一遍,T1感觉是个构造,T2我觉得贪心可写,T3,T4没思路。
8
:
20
−
8
:
50
8:20-8:50
8:20−8:50 我以为这是个凑数题,所以就在找规律凑数。甚至还写了质因数分解。还是没思路,就码了个暴力就去看T2了。
8
:
50
−
9
:
20
8:50-9:20
8:50−9:20 对于T3,应该是个dp,但是发现贪心好像没什么错所以就去写了一个贪心,大致思路就是维护一个堆,使得堆顶为差值最大,然后在记录一下修改了几个即可,但是我能
O
(
n
2
)
O(n^2)
O(n2) 非要加一个
l
o
g
log
log,然后被卡了。
9
:
20
−
10
:
10
9:20-10:10
9:20−10:10 把T3,T4都看了看,然后T3写了个
n
≤
5000
n \leq 5000
n≤5000 的
O
(
20
n
2
)
O(20n^2)
O(20n2) 和一条链的部分分,但是
n
≤
5000
n \leq 5000
n≤5000 的倍增求lca被卡了,只能
O
(
1
)
O(1)
O(1) 求。T4是确实没思路,而且样例也没推对,我一直推的都是
13
8
\frac{13}{8}
813,但是和答案不对,然后就自闭去搞T1了。
10
:
10
−
11
:
20
10:10-11:20
10:10−11:20 T1我想了想又列了个式子
a
x
+
b
y
=
−
v
ax+by=-v
ax+by=−v,化简后为
x
=
−
v
+
b
y
a
x=- \frac{v+by}{a}
x=−av+by,答案即为
m
i
n
(
∣
a
∣
+
∣
b
∣
)
min(|a|+|b|)
min(∣a∣+∣b∣),然后我就在想如何快速地求整数
a
a
a 和
b
b
b 的值,看了好一会才后知后觉地想到同余,即
v
+
b
y
≡
0
(
m
o
d
a
)
v+by \equiv 0\,(mod\,a)
v+by≡0(moda),然后就是exgcd了,很长时间都不写了,码了好几次才码出来,基本这场考试就光在写T1了,但好像还是因为特解的原因挂了50分。
11
:
20
−
11
:
50
11:20-11:50
11:20−11:50 对于T3,我又对于每个点考虑了一下贡献,一个点为lca的次数显然为所有子树的
s
i
z
e
size
size 的乘积加上当前的子树的
s
i
z
e
size
size,但是显然是错的因为序列是给定的,不能在树上算贡献。
11
:
50
−
12
:
10
11:50-12:10
11:50−12:10 提交。
赛后总结
T1
T1还是没有考虑如何才能使分解的答案最小,导致有些情况求得的答案偏大。
T2
T2还是因为堆的 l o g log log 被卡了,以后能不加 l o g log log 就不加 l o g log log。
T3
T3有求贡献的思路,但是和正解的差距就在于不会用单调栈来维护。
T4
T4能想到肯定是状压,但是具体的细节由于没时间了没多想,赛后看了看觉得50可写。