NOI2023 省选 游记

本人初中生,就是去见见世面

Day 1

开车去考场,一个小时的车程中,我敲了一遍 exgcd、dijkstra、SPFA 和线段树的板子。

进考场,先读题。为什么是 NOI2022省选 啊

发现在车上敲的板子一个都没有用上(虽然 T1 似乎可以用线段树做,但我没用)。

T1,首先想到的思路是差分。将每一个区间都加一,从起点向左、右遍历,直到有 00 或遍历完为止。如果遍历到的点是某一铁路的端点,则根据这个点在起点的哪侧,来判断是否可以走到。

然后大样例全过了,造了个小样例把自己 hack 了:4 2 1 1 2 3 4

没错这是我赛场上造出来的数据,下午把它发到洛谷上,竟然传遍了洛谷。

然后考虑一边差分一边统计答案。记录每个点是多少条铁路的左端点,多少条铁路的右端点即可。

赛后发现正常差分也可以做。但是要k[l+1]++;k[r-1]--;。(似乎是这样的)。

反正 +100pts。

再看 T2,没思路,想要做给定的图为树的点。

赛场上脑残,读错题了,推出来树的答案是 00,结果直接输出0

T2 具体得多少分要看 CCF 数据有多水,大概率0分。

再看 T3,发现 sid=6sid=6 的点可做。

这三个测试点为链,且没有修改操作。从 11nn 遍历,向优先队列加入这个点上所有员工的能力,然后取出最大值即可。+6pts。

其它点实在是想不出来了,还剩一个小时,摆烂了。

在比赛结束前的一个小时中,我闲得没事干,把电脑里的所有应用程序放在了一个文件夹里,还在桌面上建了好多个新文件夹……

Day1 估分 106 pts,菜()

Day 2

诶文件标题变回 NOI2023 了。

看 T1,测试点 141 \sim 4 数据水,先切了,+20pts。

然后看到了测试点 797 \sim 9,这里 m=1m=1。黑子每次只能向上走。用四进制枚举,四个状态分别表示第一个红字向上/向下走、第二个红子向上/向下走。+15pts。

测试点 565 \sim 6 猜了猜结论,但是不太确定,就去看 T2。

先看到了特殊性质 A,这些测试点的答案不是0就是-1

TiT_i 中取出的元素不能重复,于是想到了,如果 Ti=1|T_i|=1,那么这个数必须在这里选。如果集合 {x,y}\{x,y\} 出现了两次,则 x,yx,y 必须要选。

然后开始写代码。写了一大顿,样例过不去。然后我甚至想到了判断二分图,还是不行。

写了一大顿,改了一大顿,发现特殊性质 B 的答案不可能是-1,从 TiT_i 中取出的数字,只有两种情况。于是我就开始写这些测试点。

对于 1in1 \le i \le n ,判断从 SiS_i 中取数,只能与从 TiT_i 中取数的第一种情况相等的个数,只能与从 TiT_i 中取数的第二种情况相等的个数,以及可以和两种情况都相等的个数。最后讨论一下即可。最终测了一下大样例,看了一小下,似乎过了。但比赛此时结束了,也不能再调了。大概可以+16pts。

比赛结束了。

Day2 估分 51pts,非常寄。

总分估分 106pts+51pts=157pts,等官方成绩。


upd:官方成绩出来了,比估分低一些,又挂分了(