10.15 模拟赛

前言

业精于勤荒于嬉,行成于思毁于随

正文(模拟赛)

卦象:吉

感受:开题扫了一眼题面,觉得 T1、T2、T4 是可做题(埋下伏笔)。半个小时码完 T1,15min 会了 T2,然后调不出来,比赛结束最后半个小时码了 T4 的暴力,并且试图修改 T2 做法,令其由正解退化为乱搞。最后结果是 100+0+0+42=142pts

补题的时候,发现自己 T2 的数组重名,但是没有报错,全剧终。看了 T3,不会 HTC 和 FJJ 他们的 kruskal 重构树做法,但很快就会了 LMY 的线段树做法,就很唐。明明 T3 是最可做的题……

T1

注意数据范围,所以直接依照题意模拟

T2

\(a\) 扫描线,把 \((b,c)\) 投射到二维平面上,发现合法的点对应该在二维平面上呈现逆序对的形式。进一步地,你发现你插入一个点至多只会有 \(O(1)\) 的贡献,所以直接两个权值树状数组维护即可

T3

没有观测到一个性质,叫做蝴蝶的飞行方向可以由我来任意决定

有了这个性质,我们可以直接暴力模拟跳的过程,时间复杂度显然是 \(O(n^2)\) 的。然而,你发现时间复杂度瓶颈在于在一个子树或者一个子树补中扣去若干子树里查询权值最大的点,可以用线段树维护 dfn 序,对于已经被舍弃的子树,可以直接在线段树上把这个子树的区间修改为 \(0\)

T4

暴力不说了,一眼题

对于 \(k=0\) 特殊性质,等价于对在第一棵树上成为祖先关系而在第二棵树上不成为祖先关系的所有点对 \((u,v)\) 计数。一个比较聪明的做法是把两棵树的括号序弄出来,容易刻画其祖先关系。那么前面的条件相当于是若干形如区间不交的限制,那么这种带限制的计数题直接二维数点

考虑推广这个做法,你发现这个 \(k\) 就是个诈骗,对于一组 \((u,v)\),你直接维护对 \(u,v\)\(k\) 级祖先跑前面的特殊性质就对了

小结

就很伤,CSP 模拟赛只有 100+,连一等线都没有,更别提 NOIP 了

后记

世界孤立我任它奚落

完结撒花!

posted @ 2025-10-15 15:54  sunxuhetai  阅读(9)  评论(0)    收藏  举报