NOIP2024 游记
开场先看t1,发现不会做,想了一下回了一个4^n乘n^3的做法,写了一下只能过第一个样例,搞了很久发现过不去第二个,想了一下好像是这个做法太慢了,但是我好像不会别的做法。再去看第二题,好像是一个比较简单的算数,我玩了一下第一个阳历答案就是3,应该读对题了,没啥问题,写一个深度优先搜索好像能把第一个阳历跑过去,然后看到v的范围是1e9,这个东西比模数小一点啊,好像不太能做,但是看了一下样例有很多的0,所以提交了一个输出0的代码,应该能拿到45分吧。还剩一个半小时,上了一个厕所,想拉屎,但是坑被堵了,只好找保洁阿姨来清理,清理到一半发现不想拉屎了,所以回去了,这时候只剩一个小时了,还有2个题想活泼可爱的小精灵一般等待着我的解决。我飞速阅读完了第三题的题目,发现是给你一颗树,数有多少个生成树,我心想这不是输出1吗,赶紧写了一个,因为来不及了,所以没看阳历直接去做第四题了。第四题是一个算最大值的问题,有很多的询问等待我解决。因为只剩40分钟了,但是有1e5组询问,我想如果我拼尽全力,1秒钟做一个问题,也只能做200多个问题,所以我需要想一个n^3log复杂度左右的做法,昨天复习的时候看到一个快速的nlogn求lca的做法,大概就是二分答案,然后看这一层所有点子树内是否能包含两个点,然后再枚举一下区间就可以做到这个复杂度了!赶紧开始写代码,鲜花了20分钟写完了nlogn求lca的算法,然后我开始思考怎么枚举区间,枚举每个点在不在区间内然后判断所有点是否是一个区间可以做到2^n乘n,有想了10分钟发现直接搜索剪枝就可以做到n^2的复杂度枚举区间!感觉很对,快速写代码,再赛前5分钟写完了,测了一下第一个样例,通过了!!!!!!!我疯狂的排起了桌子。我想开始测试第二个样例,但是第二个样例有1000多行,我还没有输入完比赛就只剩1分钟了,我心想来不及了,赶紧把所有文件都放到了主目录下。比赛结束了,东名岂走了过来,说他通过了所有问题。我算了一下我的分数,第一题一共两个洋历过了一个所以50分,第二题预估45分,第三题虽然没有测试样例但是我坚信自己的想法是对的,100分,第四题很多阳历没有时间测试,但是第一个样例就说明了我的做法是正确的,想到距离出分还有好几周,我的代码应该能运行很多测试点,所以应该能有100分。50+45+100+100=295,虽然说距离大佬们的成绩有一点差距,但是我坚信我能够再省选比赛中翻盘!
更新:刚刚请教了一下笋横着大佬,他说分数并不是根据阳历的测试评判的,我的第一题只能拿到20分,第二题可能一分都拿不到,第三题我题目看错了,也是0分,第四题他还告诉我这一周不是都拿来运行我的程序的,我的程序只有2秒钟的时间来运行,所以一份也不能拿到。20+0+0+0=20分,和大佬们只差了380分,如果省选大佬们都失常发挥,我连场ak,还是有机会翻盘的!