2024年pt市NOIP集训游记

Day 1

上午

迟到了半个小时,火大。发现机房被调错了,火大。幸好最后换回来了。

上午讲线段树+平衡树和一些小技巧,有点听不懂。

下午

中午吃得太香了 qwq。

拿到了账号,是 2024ptnoip2008。

中午机房热得跟地狱一样,火大。

14:30 开赛。

先看 T1。就是给一个 x 求区间长度大于等于 x 的所有区间的最大区间和。很容易想到这种题的方法应该是先预处理再 O(1) 查询。写了一个 O(n3) 的暴力,加了一点常规优化变成了 O(n2),然后过了样例,自造大样例跑得飞快就扔了(注意!这里我没有检查大样例输出有没有问题!)。自我感觉难度大概在 绿(?),这一点存疑。当时的期望得分是 100pts

看 T2。我草一个大模拟(应该算是大模拟吧 qwq)。很容易想到写一个大分讨,关键点在于得到离散化 X,Y 后的区间 [l,r] 和这个区间的最大值然后就是一堆判断烦死了。区间最大值显然可以用 st 表进行维护,寻找离散化后的区间就是用两个二分,写了大概 1h,代码在可以缩行之后是 100+ 行。自我感觉难度大概在 绿,但是洛谷上面的原题是 。当时的期望得分是 100pts

看 T3。一个自我感觉很熟悉的数据结构题,但我不会写。想了一下特殊性质,感觉可以用一些小技巧过去,还是没想出来(听说 hzf 和 yby 想到了特殊性质 %%%)。最后打了一个暴力华容道然后就扔了。自我感觉难度是 ,洛谷原题也是 。当时的期望得分是 30pts

看 T4。发现要是没有 m 次操作的话是一个很板的结论题,但它加了一堆操作。这道题的离线和在线是没有意义的,因为每两个命令是不交叉的。开始想 O(n2) 的数据规模,就是 n1000。发现只需要把上面那个结论再放到 m 次操作当中加一个双指针就可以写。写完大概 10min,暴力还是很好写的(hzf 和 yby 还有 llc 的 T4 用 O(n2logn) 的复杂度过了)。自我感觉难度是 ,洛谷原题也是 。当时的期望得分是 40pts

打完还有 50min 去睡觉了,昨天晚上四点才睡的。。。

估分:100+100+30+40=270。

实际:80+50+30+40=200。

为什么呢?

第一点,警钟撅烂!因为 T1 有考虑到负数,而我的快写并没有考虑到负数!痛失 20pts

第二点,我发现我的 T2 和 llc 的代码高度相似,但是 llc AC 了,而我 WA 了 5 个点!应该有一些细节没处理好(因为这次我懒得写对拍了)。

看了一下排名,rk5。前四名的 dalao 们写了巨多分,可惜前四名我只认识一个林嵩 qwq。顺便提一下,rk6 也是 200pts。但是因为他涉嫌 ctj 所以被判作弊了(。

晚餐很好吃!

Day 2

上午

上午讲了一些常规串串和一些不常规串串。听不懂 QAQ。

下午

中午吃了好吃的。

中午在机房里面打了一些字符串板子,口胡几道绿题练练手,然后没了。。。

下午的比赛从 14:00 开始,居然只有 180min,差评!

首先看 T1:写了一个非常形式化的题面。和前缀后缀有关,首先想到了 KMP 中的预处理数组,也就是最长前缀和后缀。发现这个数据对题目一点用都没有。注意到这个字符串是一个 01 串,很容易想到 01 Trie 和一些状压操作。但发现建立一个前后缀字典树后的转移人脑无法模拟,所以暂时抛弃。考虑了一个 Hash 表,对于每一个字符串都把它的所有前后缀存进 Hash 表中,带了一个键值,也就是出现字符串中此字符串的最小违和度。用 unordered_map 来实现。然后考虑了一个 DP,记 fi 为前 i 个字符的最小违和度,转移方程显然是 fi=minfj+pj+1...i,时间复杂度是 O(m2)。显然不能通过本题,发现这个转移方程和二中月赛的 T4 神似,但我不会写,扔了,总时间复杂度 O(L+m2),预计得分 50pts

然后看 T2:很像一种基因测序,不会写,直接考虑 5pts 的特殊性质。当 n=m=1 时,显然输出一个 k2 向下取整是可以的,扔了,预计得分 5pts

然后看 T3:发现签到题居然是第三题?????模数处理+单调队列秒 AC(其实我最开始看成了求绝对值最小值,所以打了 20min 平衡树 qwq),预计得分 100pts

然后看 T4:最开始其实 n=1 的挺可想的,因为题目中的看似复杂的两个操作退化成了一个,也就是把这唯一一个字符翻倍再翻倍。那我们首先考虑一下答案为无穷大时的判断方法。不难发现,对于原串,我们先跑一遍 Manacher,然后再讲原串复制一遍,再跑一边 Manacher。如果两次跑的答案有变化,那么就输出无穷大。这个正确性是显然的,对于一个串 s,假设它跑第一遍 Manacher 的答案是 a,第二遍 Manacher 的答案是 b,如果 a=b,那么说明两个字符串复制之后的回文是不相影响的,所以此时不是无穷大;如果 ab,那么一定是 s 的一个后缀加上 s 的一个前缀是一个回文串,显然地,一直复制以后就是无穷大了。如果不是无穷大的话,那么答案就是第一次跑 Manacher 的答案。预计得分 30pts。后面口胡了一个 60pts 的做法,就是将 n 个字符串全都两两凭借之后放入集合,然后对每一个集合中的字符串同样跑两遍 Manacher 判断是不是无穷大,然后如果不是无穷大的话就一直把 ans 更新成最大的 Manacher 数值。这是一个看起来很正确的算法,正确性却无法简单证明,而且后面没时间写,我也就没有深究了。

预计得分:50+5+100+30=185

实际得分:40+5+100+20=165

为什么呢?

敲响警钟!第一题和第四题都是因为数组开小 RE 了!!!!!

说一下难度,自我感觉难度是 绿

看了一下一些新高一和新初三的,分数大概都在 [60,165],大家都考得不太好。

晚上吃了两碗!

Day 3

上午

讲 2-SAT 和 Tarjan,听不懂。

下午

火大。

只会 T1,不讲了。

晚上

打 atcoder beginner contest。

看这里->awa

Day 4

上午

讲网络流。

下午

首先开 T1:mdfk 不会。到最后也不会写,随便提交了一个输出 0,结果得了 6pts,乐。

然后开 T2:一眼网络流最小割,但我不会写(TAT)。发现可以 DFS 搜索上下炮台打的位置,然后最后处理左右炮台打的位置,可以完成特殊性质二和特殊性质三,期望得分 40pts

然后开 T3:题面没看懂。

最后开 T4:想了一会,llc 说可以用二分图,我去现场学了一下二分图板子,然后发现对于一个 1,必然和旁边的 3 连边,3 也同理,最后再加上 2 的数量,综合运用了一下贪心算法,期望得分 85pts

出分发现 T4 数组开小乐(!!!)。

老师说这是 NOI 的送分题,难度评级在 蓝~紫,我直接狂砍 133pts

posted @   SnapYust  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示