NOI 2026
Day 1
做T1,感受了一下发现会了一个做法,但是状态是
但是被
想了
先写了一个暴力验证一下正确性,大概是
前缀和优化一下发现轻松通过了,卡了一下常数就扔掉了,大概是
做T2没啥想法,遂思考链的特殊性质,做了一会发现应该是前缀 / 后缀随机,其他暴力指向
写了一万年得到了一个
尝试推广到一般情况感受了一下,发现形式非常优美, 11:00 获得了 60p。
此时我意识到只需要把暴力改成三分,然后只需要支持邻域查询的数据结构即可通过此题,我选择了点分树。
由于我赛前没有写板子,导致我几乎是现场发明了一遍点分树,在 12:30 完成了代码并通过了大样例。
遗憾的是我发现他的耗时特别久,我写的点分树在重编号上需要一个哈希表,我尝试了 map 和 umap 都无法通过。
提交到 selfeval上获得了 60p , 和暴力一致。我完全不知道如何去掉哈希表(赛后发现是不困难的),在思考一会后选择了放弃。
最后 15min 我匆忙地去写了 T3 的暴力 , 会了一个问
最后 Day 1获得了 100 + 60 + 10 分,赛后讲评发现许多选手 T2 和我的做法一致并获得了满分,T3不少人通过一些乱搞获得了非平凡分数。
Day 2
做T1,思考先二分之后如何判定,一开始我认为这是十分平凡的,但是开始写代码的时候发现完全不对。
于是我先思考了一下特殊性质,发现
发现奇数只需要多讨论了一下,冷静思考后发现平方是简单的,于是快速实现了一下
然后我尝试用数据结构优化这个做法,两种情况中,第一种情况是好做的,可以简单做到线性,第二种情况思考很久之后也只会
加上外层的二分就是2 log , 由于
做T2 , 发现我忘记了 prufer 序列如何还原树,但是经过手玩之后还是会了
观察了一下我做法的形式,发现可以做
可以对值域暴力然后是一个二维偏序状物,我选择了
由于细节不少写到了 12:00 , 发现调试不出来,到 12:30 时放弃了调试,决定先写完 T3 的暴力。
因为之前我看了一下 T3 , 误以为自己会一个
在 12:50 在 selfeval 获得了 4分(
出场报的 100 + 20 + 0 , 查分发现 T3 确实挂掉了,120 分。
查完分思考了一下,发现 T2 对值域暴力是完全没必要的,可以多一个限制变成三维偏序,然后使用一个数据结构就能做了。
Day ???
100 + (100 + 60 + 10) + (100 + 20 + 0) = 390 , 银线 394