HNOI2017总结

2017湖南省选总结


Day1

第一天考试晚开始了40分钟,打完模板无事可做的我感觉大脑受到了电脑的辐射,晕晕乎乎的想睡觉。

首先看第一题,发现是关于spaly的。第二题,题面好长,感觉很复杂。第三题感觉可以枚举,试试能不能做?


T3

于是一上来就挑战第三题。不到十分钟,我就推出了一个式子,发现可以做70分……

我发现算法的瓶颈在于如何求 \(f_d=\sum_{i=1}a_i\times b_{i+d}\),如果能快速求出的话就可以A掉了。

当时也是脑抽了,竟然没发现把 \(b\) 数组反转一下就变成了裸的FFT,而一直想着怎么用差分或是前缀和来优化。


T2

发现无法做之后我就花了十分钟打完了暴力,开始挑战第二题。不到十分钟,我就想到了一个 \(O(n\log n\sqrt{n})\) 的莫队算法……

分析一波之后发现,极限数据好像要 \(1.5e9\) 次运算,常数最小(大于 \(1\))也要5s,而时限只有2s,可能会被卡到暴力分。于是我就虚了想其它方法。

于是我考虑每个元素作为最大值的贡献,发现只与左右两边第一个比它大的元素有关,而且贡献很容易计算。

然后这时候如果有一个往平面矩形上的转化就妙了,可是我这种类型的题目就只做过一道,考场上完全没有把子序列的问题往这方面想。

倒是当初看到谢超才在搞莫队的时候,自己也凑热闹似地学了一波,对子序列的题目除了线段树就只有莫队了。

至于线段树,这种所有子区间的问题我也没有接触过。考场上分析了一波觉得并不可行,就写了一个暴力走人了。

考完才知道我的前半部分思维是对的,只要转化成平面矩形用主席树或是历史版本和的线段树就行了。


T1

最后挑战第一题。

看到这一题,我马上想到zjoi的树状数组,感觉应该也是找规律的题目。

于是我就手动模拟了两次rotate,发现(似乎)并没有什么规律。

考完后发现一般手玩了三次以上rotate就能发现深度的变化规律,然后就是一个很裸的数据结构……


得分情况

自己想要拿的暴力分全部拿到了,一分不高一分不低,正好120。

说明我的代码能力还是比较强的,只是思维能力还是有点没有跟上。


Day2

今天变成晚到了5分钟……

一看题目,第一题怼大佬感觉很神奇,第二题计算几何,第三题是组合数学。


T3

因为自认为数学比较杂实(laji),所以一开始分析了一下第三题。

发现第三题就是一个套在一起的组合数。

感觉很水70分部分分应该跑不掉了,就是把组合数关于2和5的因子提出来然后剩下的该怎么弄怎么弄。

然后100分感觉完全不可做,倒是推出一个递推公式,但是还是 \(n^2\) 连60分都拿不到……

最后20分钟想起对拍,竟然没拍几组就有错误!

于是我满心无奈地交了暴力,看着40分平白无故从手中溜走。

下午来了之后进行检查,发现竟然只是错了两个字母!

(改了字母之后仍然只有50分,有两个点被卡常了)


T2

接下来我考虑做哪个题目。因为第一题的定义太复杂了很不想看,于是就先做第二题。

第二题感觉模拟赛的时候做过类似的,只不过模拟赛的时候都是横平竖直的,可以用线段树维护,这里的话难道线段树每个节点维护一条直线???

反正我的计算几何也特别弱,基本没做过什么题目,于是就很果断地打了30分暴力,就弃疗了。


T1

最后是第一题。感觉第一题的暴力分有40分,而且很好拿,20分一个搜索就可以拿到,40分的话加一个记忆化,就拿到所有部分分了。

于是我迫不及待地打完暴力,然后想正解。

发现这个题目的条件太过于杂乱,感觉完全没有思路,于是也以失败告终。


得分情况

又拿到了所有部分分……

于是总分就只有120+100=220光荣滚粗……


总结

总的来说还是对于知识点的应用不熟练,代码能力倒是差不多了(不过我打的都是暴力,也没有打挂的机会了)。