10 28 模拟赛
考试安排
8:00 - 8:20: 胡了个T1,放了
8:20 - 8:50:感觉T2是个贪心,然后想了一下证明
8:50 - 9:20 : 看T3,然后发现挺简单的
9:20 - 9: 50 :感觉T3可过, 放了
9:50 - 10:10 : 看了一眼T4
10:20 - 10:50 : 想到了如何计数方法,但是有子树外usm不太会处理
10:50 - 11:30 : 没想到处理方法,但是隐隐约约有了思路
11:30 - 12:00 : 冲了一发巨大麻烦的做法,然后没过样例
AK了一卡车…赛后询问发现子树sum转化为补集,然后换根就行了。。。有点自闭
预期: 100 + 100 + 100 + 0 = 300
实际: 50 + 100 + 100 + 0 = 250;
收获or反思?
1.测极限数据,看会不会爆
2.求补集!求补集!求补集! 要多少次才能记住啊!
数论入门
简单题,首先
n
n
n必须是
k
k
k的因子,枚举因子即可
B. 删库跑路
简单题,直接按边计算答案,可以证明贪心策略正确
-1+i进制系统
读题题,读完题应该都会做
D. 醉醉疯疯渺渺空空
经典题,考虑如何计数
两点不在一条链上,发现如果能统计每个点子树距离它的
∑
2
d
i
s
\sum 2^{dis}
∑2dis,此题就可做了
两点在一条链上,发现需要统计
v
v
v子树外的点距离它的
∑
2
d
i
s
\sum2^{dis}
∑2dis
(
d
e
p
[
v
]
<
d
e
p
[
u
]
)
(dep[v]<dep[u])
(dep[v]<dep[u]),考虑求全集,然后减去
v
v
v子树中的
d
i
s
dis
dis之和即为子树外的,然后全集就是换根求即可