20210923下午
今年听到最好的笑话:
#define __int128 int
T1 | T2 | T3 | T4 | |
---|---|---|---|---|
预测 | 100 | 100 | 100 | 100 |
一测 | 100 | 100 | 100 | 67 |
T1:
好怀念啊,上次看到这个题都是初中了。
求
L
C
A
LCA
LCA,倍增树剖都可以,第二题要用树剖就写树剖了。
T2:
树剖经典,安装相当于把从根到
i
i
i路径改为
1
1
1,卸载相当于把子树改成
0
0
0,比较前后软件总数即可。
T3:
二分答案,若
∑
k
=
i
j
a
k
j
−
i
+
1
≥
x
\frac{\sum_{k=i}^{j}a_k}{j-i+1}\ge x
j−i+1∑k=ijak≥x,则有
∑
k
=
i
j
(
a
k
−
x
)
≥
0
\sum_{k=i}^j(a_k-x)\ge 0
∑k=ij(ak−x)≥0。即判断数列减去
x
x
x后长度大于
l
l
l的最大子段和是否
≥
0
\ge0
≥0,可以通过记录前缀和最小值
O
(
n
)
O(n)
O(n)实现。总复杂度
O
(
n
l
o
g
n
)
O(nlogn)
O(nlogn)。记得开
l
o
n
g
l
o
n
g
long\ \ long
long long,
d
o
u
b
l
e
double
double可能会有精度问题。
T4:
次序导致最后值变化的原因在于加的
1
1
1,先乘的会少多,后乘的会多多,所以类似合并果子,把小根堆求出最大值,大根堆求最小值,相减得答案。
可
n
=
50000
n=50000
n=50000,但凡每个数是
1
1
1也有接近
16000
16000
16000位,即使用高精也会
T
T
T啊,怎么办呢?
答案:开
i
n
t
int
int让它自然溢出就完事啦,因为
s
t
d
std
std就这么写的。
哈哈。
总结:日常投诉数据。