第一天考试晚开始了40分钟,打完模板无事可做的我感觉大脑受到了电脑的辐射,晕晕乎乎的想睡觉。
首先看第一题,发现是关于spaly的。第二题,题面好长,感觉很复杂。第三题感觉可以枚举,试试能不能做?
于是一上来就挑战第三题。不到十分钟,我就推出了一个式子,发现可以做70分……
我发现算法的瓶颈在于如何求 fd=∑i=1ai×bi+d ,如果能快速求出的话就可以A掉了。
当时也是脑抽了,竟然没发现把 b 数组反转一下就变成了裸的FFT,而一直想着怎么用差分或是前缀和来优化。
发现无法做之后我就花了十分钟打完了暴力,开始挑战第二题。不到十分钟,我就想到了一个 O(nlognn√) 的莫队算法……
分析一波之后发现,极限数据好像要 1.5e9 次运算,常数最小(大于 1 )也要5s,而时限只有2s,可能会被卡到暴力分。于是我就虚了想其它方法。
于是我考虑每个元素作为最大值的贡献,发现只与左右两边第一个比它大的元素有关,而且贡献很容易计算。
然后这时候如果有一个往平面矩形上的转化就妙了,可是我这种类型的题目就只做过一道,考场上完全没有把子序列的问题往这方面想。
倒是当初看到谢超才在搞莫队的时候,自己也凑热闹似地学了一波,对子序列的题目除了线段树就只有莫队了。
至于线段树,这种所有子区间的问题我也没有接触过。考场上分析了一波觉得并不可行,就写了一个暴力走人了。
考完才知道我的前半部分思维是对的,只要转化成平面矩形用主席树或是历史版本和的线段树就行了。
最后挑战第一题。
看到这一题,我马上想到zjoi的树状数组,感觉应该也是找规律的题目。
于是我就手动模拟了两次rotate,发现(似乎)并没有什么规律。
考完后发现一般手玩了三次以上rotate就能发现深度的变化规律,然后就是一个很裸的数据结构……
自己想要拿的暴力分全部拿到了,一分不高一分不低,正好120。
说明我的代码能力还是比较强的,只是思维能力还是有点没有跟上。
今天变成晚到了5分钟……
一看题目,第一题怼大佬感觉很神奇,第二题计算几何,第三题是组合数学。
因为自认为数学比较杂实(laji),所以一开始分析了一下第三题。
发现第三题就是一个套在一起的组合数。
感觉很水70分部分分应该跑不掉了,就是把组合数关于2和5的因子提出来然后剩下的该怎么弄怎么弄。
然后100分感觉完全不可做,倒是推出一个递推公式,但是还是 n2 连60分都拿不到……
最后20分钟想起对拍,竟然没拍几组就有错误!
于是我满心无奈地交了暴力,看着40分平白无故从手中溜走。
下午来了之后进行检查,发现竟然只是错了两个字母!
(改了字母之后仍然只有50分,有两个点被卡常了)
接下来我考虑做哪个题目。因为第一题的定义太复杂了很不想看,于是就先做第二题。
第二题感觉模拟赛的时候做过类似的,只不过模拟赛的时候都是横平竖直的,可以用线段树维护,这里的话难道线段树每个节点维护一条直线???
反正我的计算几何也特别弱,基本没做过什么题目,于是就很果断地打了30分暴力,就弃疗了。
最后是第一题。感觉第一题的暴力分有40分,而且很好拿,20分一个搜索就可以拿到,40分的话加一个记忆化,就拿到所有部分分了。
于是我迫不及待地打完暴力,然后想正解。
发现这个题目的条件太过于杂乱,感觉完全没有思路,于是也以失败告终。
又拿到了所有部分分……
于是总分就只有120+100=220光荣滚粗……
总的来说还是对于知识点的应用不熟练,代码能力倒是差不多了(不过我打的都是暴力,也没有打挂的机会了)。