CF68D

可以发现只有 hqhq 级别的点被增加过权制,于是我们可以开一个 map 记录每棵子树的权值和。

Read more »

模拟赛

A

可以发现,如果我们可以找到每一次出发会在哪个红绿灯第一次等待,那么等待完接下来的路程就相当于从那个红绿灯 0 时刻开始走,而每个红绿灯 0 时刻开始走需要的时间也可以通过相似的方法求出,找到从这开始会在哪个红绿灯第一次等待,然后从后往前递推即可。

Read more »

CF558E

字符集大小只有 26 ,于是可以对于每一个字符建一棵维护它出现位置的线段树,排序就是对 26 个字母分别区间求和然后依次区间赋值。

code: /code/2022.3.21/CF558E.cpp

Read more »

BZOJ4260

把区间转换为异或和后直接 trie 树求 xor 最大值,正反拼起来即可。

code: /code/2022.3.20/bz4260.cpp

CF617E

发现 [l,r][l,r] 中是否有字区间异或和为 k 等价与前缀和 [l1,r][l-1,r] 中是否有两个位置不同的数异或为 k 直接莫队即可。

code: /code/2022.3.18/CF617E.cpp

Read more »
0%