11月30日前
对这次 NOIP 还是做了比较充足的准备啊,考前几天就没怎么做难题了,主要做了一些黄题绿题,用来保证 T1 能够比较顺畅地做出来(焯!谁能想到 CCF 搞这一手,T1 这样出)。
考前两天就开始打模板了,复习了一堆杂七杂八的模板,感觉上是基本都能顺畅打出来了(但是谁能想到根本用不上啊!!!)。考前还学了个dfs 序+ST 表求 LCA(诶嘿没想到这玩意还真有用!!!)。
然后就要出发了,考点还是熟悉的中山纪中和熟悉的酒店,晚上玩了会饥荒就早早地睡了,也是睡了七个多小时比较精神。
考前
在考场的 1 号位,中山纪中的机子手感还是要比 CSP 时的石门手感要好的,但就是又严格了一点不能提前碰鼠标键盘,问题不大。比较好的是机子自带有英语的语言我就不用自己加了,DEV 的编译指令也给我加好了 C++14,还挺贴心。
刚开考
密码也是抽象,一个 forget 开头,一个 memory 开头,不得不说比之前的乱码好打多了。但就是密码还迟了半分钟公布,不过也影响不大。
T1
看完 T1 题面,顿感不妙,因为一眼瞪不出来正解,又很像是一个简单贪心的题面,很怕自己想不出来。想了几种简单策略之后还是犹豫了一下,选择了一个保守的 n^2 的写法,写了一会写出来发现 n^2 的循环只跑一遍也是对的,给我整愣了。犹豫了一下还是决定要冲正解,就保守地循环了 5 次,让它正确性更大一点的同时又不影响复杂度。此时已经过去一个半小时了,心态不太好了,浪费时间真的太多了。
(正解:其实就是联通块能相同就相同。我的思路是先把原先确定的填了,再把变成确定可能的填了,再把剩下的能相同就相同。实现上更复杂了,但貌似也是有正确性的)
T2
(正解:差不多但是可以直接用快速幂算出来。现在想来好蠢啊……阶乘累加分明是能直接算的,我还搁这预处理)
## T3
题面相当抽象,搞半天连 $k=1$ 的情况都没想明白,一看时间更不够了,就只好打了个好像正确的树形 $DP$。感觉 $T4$ 更有思路,就直接跑去 $T4$ 了。
## T4
想了一会发现 $LCA$ 是可重复贡献的!它还不带修!这意味着可以直接塞个 $ST$ 表给它吃,又恰巧学了一个 $O(n\log n)$ 预处理 $O(1)$ 查询的 $LCA$,就决定是它了!再一看时间,只剩不到一个小时了!赶紧半小时打完两个 $ST$ 表,砍下 $32pts$。
## 补T3
写完 $T4$ 还剩十几分钟,还是决定再看看 $T3$,一看吓一跳,$DP$ 是错的。又想了亿想,发现貌似和组合数有关,就搞了个阶乘,又搞了个逆元,乱搞了一通不知道对不对。然后又发现链的分是白送的,全输出 $1$ 就好了,然后就到时间了,检查了一遍 $freopen$ 最后两秒关掉了所有窗口。
## 考后
总的来说主要还是 $T1$ 浪费太多时间了,$T1$ $T2$ 都不够果断,有点蠢。更蠢的是我居然没想到 $T4$ 的链直接看最顶上是啥就好了!真的蠢。预估可能 $236$~$260$ 的样子,当然如果 $CCF$ 神机让我 $1e5$ $O(n^2)$ 都能跑过的话还能再高一点。
一年的准备还是很有用的,做题经验啊,对算法的理解啊,都发挥了相当的作用,还是祈祷上天数据水吧。