2025.10.15模拟赛

赛时

看T1,然后一看就是一个模拟题,然后意义不明的发了一会呆后,切掉了

然后睡了30min。。。

看T2,然后想到了CDQ分治,但是想不到CDQ分治的细节,所以直接放弃了

然后我想值域上进行优化,然后枚举a,b,c的,然后想一想优化了c这一维,75pts

看T3,然后还剩1h,然后链上快速码了一个分治做法,线段树维护最大值即可,56pts

想到树上做也是相似的,但是没想到怎么计算那种子树和子树之间拆分出的散块,遂放弃

其实直接用dfn序维护,然后跑完后把线段树上赋为0即可,感觉在想一想可以想到的

T4,还剩30min,读完题后发现,42分很好拿,直接两个求lca即可

策略还可以,再多一点时间,T3可能能拿正解

赛后

T2lmy做法:

a排序,然后b,c上二维平面,发现一对可以产生贡献的点对,就是b最大的和c最大的组合起来的矩形即可,然后若两个b和c都是最大的点应当怎么办,把它放到一个set里维护,然后若新加入一个点能够成点对点就拿出来

T2zqm做法:

分别按a,b,c排序,然后若a和b和c所对应的最大值都不一样,就直接是答案,否则就弹出那个两个相同的值

发现其实把lmy做法反着来做,就和zqm做法一样了

T2htc做法:

CDQ分治,无脑做,a排序,b分治,c只要查是否有两个数>它就行了

T3并查集做法:

考虑我们无非就是想用最大的点分治这棵树,考虑从小到大枚举点,比当前点大的点都是分治中心,所以直接dp转移,然后并查集维护即可

T4sgz做法:

k=0时

考虑到枚举一棵树的祖先关系,维护在第一颗树上的祖先关系的点在另一棵树上的非祖先关系

非祖先关系考虑用dfn序,记录进入的dfn序和出去的dfn序,非包含关系即可,用树状数组维护

考虑k不等于0的情况,维护k级祖先就转化成了k=0情况

T4htc做法:

考虑枚举一颗树的lca解决k级组先问题,就是考虑比lca要深k级的所有点的互相之间的贡献,然后用dfn序维护在第一颗树上能否有祖先关系

考虑怎么考虑互相之间的贡献,用启发式合并,在树状树组上查询即可

posted @ 2025-10-15 21:36  daydreamer_zcxnb  阅读(11)  评论(0)    收藏  举报