NOI2023 省选 游记
本人初中生,就是去见见世面
Day 1
开车去考场,一个小时的车程中,我敲了一遍 exgcd、dijkstra、SPFA 和线段树的板子。
进考场,先读题。为什么是 NOI2022省选 啊。
发现在车上敲的板子一个都没有用上(虽然 T1 似乎可以用线段树做,但我没用)。
T1,首先想到的思路是差分。将每一个区间都加一,从起点向左、右遍历,直到有 或遍历完为止。如果遍历到的点是某一铁路的端点,则根据这个点在起点的哪侧,来判断是否可以走到。
然后大样例全过了,造了个小样例把自己 hack 了:4 2 1 1 2 3 4
。
没错这是我赛场上造出来的数据,下午把它发到洛谷上,竟然传遍了洛谷。
然后考虑一边差分一边统计答案。记录每个点是多少条铁路的左端点,多少条铁路的右端点即可。
赛后发现正常差分也可以做。但是要k[l+1]++;k[r-1]--;
。(似乎是这样的)。
反正 +100pts。
再看 T2,没思路,想要做给定的图为树的点。
赛场上脑残,读错题了,推出来树的答案是 ,结果直接输出0
。
T2 具体得多少分要看 CCF 数据有多水,大概率0分。
再看 T3,发现 的点可做。
这三个测试点为链,且没有修改操作。从 到 遍历,向优先队列加入这个点上所有员工的能力,然后取出最大值即可。+6pts。
其它点实在是想不出来了,还剩一个小时,摆烂了。
在比赛结束前的一个小时中,我闲得没事干,把电脑里的所有应用程序放在了一个文件夹里,还在桌面上建了好多个新文件夹……
Day1 估分 106 pts,菜()
Day 2
诶文件标题变回 NOI2023 了。
看 T1,测试点 数据水,先切了,+20pts。
然后看到了测试点 ,这里 。黑子每次只能向上走。用四进制枚举,四个状态分别表示第一个红字向上/向下走、第二个红子向上/向下走。+15pts。
测试点 猜了猜结论,但是不太确定,就去看 T2。
先看到了特殊性质 A,这些测试点的答案不是0
就是-1
。
从 中取出的元素不能重复,于是想到了,如果 ,那么这个数必须在这里选。如果集合 出现了两次,则 必须要选。
然后开始写代码。写了一大顿,样例过不去。然后我甚至想到了判断二分图,还是不行。
写了一大顿,改了一大顿,发现特殊性质 B 的答案不可能是-1
,从 中取出的数字,只有两种情况。于是我就开始写这些测试点。
对于 ,判断从 中取数,只能与从 中取数的第一种情况相等的个数,只能与从 中取数的第二种情况相等的个数,以及可以和两种情况都相等的个数。最后讨论一下即可。最终测了一下大样例,看了一小下,似乎过了。但比赛此时结束了,也不能再调了。大概可以+16pts。
比赛结束了。
Day2 估分 51pts,非常寄。
总分估分 106pts+51pts=157pts,等官方成绩。
upd:官方成绩出来了,比估分低一些,又挂分了(