11 2023 档案
摘要:考虑双指针,枚举左端点 iii,看右端点 jjj 最多拓展到哪里。 我们对每个点开个 vector,存这个点选了之后哪些的另一个不能选。 对于 jjj,如果存在这个点的 vector 内的数 kkk 满足 i≤k<ji \leq k < ji≤k<j,那么 jjj 就不能作为右端点了。我们直接对于每
阅读全文
摘要:比较好想,但是细节比较多。 我们考虑到最大流 最小割,于是我们直接刻画最小割即可。 由于图的特殊性质,左侧 i→i+1i \rightarrow i+1i→i+1 和右侧 i→i+1i \rightarrow i+1i→i+1 在最小割必然至多只会割一次。 我们假设左侧选的是割 i→i+1i \ri
阅读全文
摘要:考虑倒着做,将删边变成加边,用并查集启发式合并维护并且在合并时更新贡献。 考虑现在有两个集合 SSS 和 TTT,设两点树上距离为 dis(u,v)dis(u, v)dis(u,v),则添加一条边时添加的贡献为 ∑(u,v)(u∈S,v∈T)[dis(u,v)=0]\sum \limits_{(u,
阅读全文
摘要:我们注意到 (106)3=1018(10^6)^3 = 10^{18}(106)3=1018,也就是说,对于 b=3b=3b=3 时,a≤106a \leq 10^6a≤106。于是可以线性筛预处理 1∼1061 \sim 10^61∼106 的质数并且把每个质数的三次方加进去。 考虑对于小的 aa
阅读全文
摘要:考虑二分答案。 每个点要么选 xxx,要么选 yyy,这本质上是一个 2-SAT 模型。 直接建边的话,枚举 i,ji,ji,j,并且判断 ∣xi−xj∣<d|x_i-x_j| < d∣xi−xj∣<d 时,若 iii 取 xxx,那么 jjj 取 yyy。其余的 (x,y),(y,x),(y,
阅读全文
摘要:板子。 考虑二分答案,每个点只有两种选择,并且对于任意两个点之间有一些逻辑关系。假设二分的是 xxx,则 ∣ai−aj∣<x|a_i-a_j| < x∣ai−aj∣<x 表示 iii 和 jjj 不能同时选早着陆。对于其他的也一样。 显然这是个 2-SAT 问题,直接做就可以了,复杂度平方对数。
阅读全文
摘要:注意到一个点到连通块中最远的点,必然是两直径端点之一。 我们需要添加一个点并连边,动态维护直径。经典结论是,两个连通块合并,新的直径端点必然是原来两个连通块的 444 个直径之中。 由于这题只新增一个点而非连通块合并,所以我们只需要比较 333 条路径长度即可。 使用 LCT 动态维护加边和求路径长
阅读全文
摘要:赛时差一点过,因为缺少了一个关键性质的观察。 容易发现可以 O(nm)O(nm)O(nm) 建图然后跑类似过河卒的有向图博弈。 注意到当我打出这张牌,对手一定会打出攻击力大于这张牌的防御力并且那张牌防御力最大,显然可以二分,然后就可以将图的边数减小了。这就是关键性质。 #include <bits/
阅读全文