NOIP 2024 游记

幸存者

2024-11-19 18:06:17

生活·游记

Day -10

忽然发现 NOIP 只剩不到两周了,开一下游记。

Day -6

NFLSPC,两题跑路;ARC,两题跑路;CF,开错题了,把 F1 当成 E 做了 40min,才开的 E,最后也没调出来 F1。

Day -5

梦熊模拟赛,终于打得稍微好一点。T1 硬控 30min 不会,T2 30min 过,回去做 T1 30min 过,T3 1h 过,T4 找到规律,写了个 dp,没时间写矩乘了,100+100+100+55 跑路,在 mxoj 上 rk10。。。

Day 1

策略是先做 T1,然后看 234,哪个简单做那个。

赛时先开的 T1,第一眼不会,遂把 234 都开了,简单思考后会了 12,34 不太会,这时大概 8:55。

写 T1,写挂了样例输出负数,调出来了之后在 9:12 交了上去。

写 T2,最后一段区间多乘了个 v,调了几分钟,9:26 交。

思考 T3,首先特殊性质 A 使简单的,特殊性质 B 注意到是一条链,且开头/结尾必须在给定的 k 个中,于是等差数列求和乘一下阶乘就行。

又想了一会儿,会了 k=1,要往边的两侧 dp。写了之后发现过不了样例,而且和样例输出看起来没有任何关系。(实际上我认为如果边两侧都有至少一条边,最后要乘 2,但取模后差二倍我没看出来)

后来感觉要再乘一个 2 的几次方,因为可以进去一条边之后调出来,回溯的时候再进去。后来发现这两种情况生成的树肯定是一样的,然后发现了二倍那个错,过了样例。(此时大约 10:30?)

k=2,发现直接减掉重复的做完了,写的时候可以直接四遍 dfs,每个点 fa 若不同就是 (d_u-2)!,否则是 (d_u-1)!。结果还写挂了,调了一会儿,大概 10:50?

这时候 k\le8 自然就会了,但是发现只有 8 分,非常不值。于是思考正解,感觉要 dp,但没推出来。到了 11:30 的时候感觉再不做 T4 就寄了,于是直接放弃 8 分,交 T3。

T4 一开始先想特殊性质 A(一开始看题的时候已经会了特殊性质 B),发现只会一个二分 + 主席树双 log(需要维护区间最长 1 子段)。接着想 n^2,注意到可以直接预处理所有区间。(这段是在 11:30 前不会 T3 时想的)在思考正解的时候,我就想能不能预处理出长度 \le\sqrt{n} 的区间,但失败了。后来,我发现可以倍增预处理出为长度 2 的幂的区间,询问的时候可以直接找最大的 x 使 2^x\le k。注意到 k<2\times2^x,于是一个长度为 k 的区间内的所有长度为 2^x 的区间是有公共点的,所以预处理的 LCA 一定是公共点的祖先。那么,所求的 LCA 也就是所有长度为 2^x 的区间 LCA 中深度最小的一个,于是就转化成了特殊性质 A。我又思考了一会儿,发现还是不会,大概 11:45 的时候赶紧开写双 log。

大约 12:15 写完了,然后样例段错误,我发现是主席树的问题,并输出了主席树的量,发现有玄学错误。过了 20min,我发现主席树 update 没返回 UB 了(我的写法不传地址),改了之后过了小样例。结果样例 2 WA 了,发现是 Node + 写错了,改了之后在 12:40 通过了样例 2。神奇的是,样例 3 错了一堆,后来发现是主席树数组开的不够大,开到了 3.5e7,测了一下大概 900MB,样例 3 过了。但样例 4 过不去,数组再开大就 MLE 了,我也没办法了,n\le10^5 只有 52 分。迅速写了个特殊性质 B,没样例可测,假装它过了,那么就有 64 分,这时大约 12:50。

我还可以去写 T3 k\le88 分,但我求稳检查了各题文件、编译、空间,最终遗憾离场。

估分 100+100+56+64=320,希望不要挂分,希望能进 BJ rk20,不然就要转 MO 了。

Day 7

T4 B 性质没测样例终究还是挂了,100+100+56+52=308,结束了。