HNOI2019
省选总结
day0
写了下平时不经常写的模板,像什么\(LCT\),圆方树,\(exlucas\)之类的,但是一个都没考。
day1
提前十几分钟进了考场,可以提前动电脑,赶紧把\(vimrc\)打了。八点钟解压之后先看了下三道题,三道题题面都很长,第一道题\(fish\)看了半天感觉是个计算几何,先放到一边。
\(T2\)也看了半天,发现就是要对每个前缀求最长的\(border\)。感觉还挺有想法的,\(T3\)看了几遍都没有看懂就先做\(T2\)了。
先想了下前\(30\)分的暴力,因为有回溯操作,一开始一直在想可持久化数据结构,但是感觉太暴力了,又想了会,想起了挂操作树。写出来一看,好像有\(50\)分。用之前的想法,有一些段的\(fail\)是一段递增的序列,把这一段缩起来,写出来发现拍不上,调了两个小时还是拍不上。
先去写\(T1\)暴力了,一开始判角是钝角还是锐角是用解析几何暴算的,写完发现过不了样例,心态爆炸了,因为样例太难看了。又花了半个多小时弄清楚了错在哪里,就是判角判错了,换了种又简单又好写的就过了。
然后看\(T3\),对着样例看了好久,写了个\(dfs\),以为有\(30\)分,每测大一点的数据,结果出来发现只有\(15\)分,后面全\(TLE\)了。
最后一个小时还在调\(T2\)后面那个乱搞,最后半个小时的时候调出来了。
一开始以为是\(20+50+30=100\)的,最后出来是\(20+70+15=105\)。
day2
上来想先把暴力写了,但是发现只会\(T3\)的暴力,还只有\(10\)分,感觉其他两道题都不打算给暴力分了。
\(T2\)又推了推式子,写了个\(20\)分,然后对着后面的部分分想了一个多小时还是不会写。
\(T3\)发现了个性质,写了好长,然后就有\(30\)分了。
因为不能有一道题暴零,所以赶紧去想\(T1\)暴力,想了半个多小时,想到了从一个状态一直向两边扩展,写完发现随即数据有时候过得去,但是随便卡两下就过不去了,又加了\(bitset\)想优化一下,但发现没有什么效果,就删了。
后面又去想\(T3\)了,观察样例发现每段下降的都要变成一样的数,但这只是因为样例太水了,我写了组四个数的小样例就把这个做法\(hack\)掉了,然后就想到了用个单调栈一直合并,写出来能和暴力拍上,\(T3\)似乎就有\(50\)分了。
最后一个小时每写出什么东西。
出来预计\(30+20+50=100\),然后出来确实是这样的。
总结
这次考试暴露了许多问题,比如其实\(day1\)的时候没有看清楚题目的编译选项,以为三道题都开了\(O_2\).
\(T2\)题面里只写了字母,但没写大小写,虽然最后没有,但是万一有了,而且自己的做法和字符集有关的话就暴了。
\(day1\)的时候花了3个半小时来做\(T2\),导致没有意识到\(T3\)其实更简单。
考的还行的原因就是没怎么挂分,然后写好了暴力,并且有几道题拿到了高一点分的暴力。
虽然最后进了B队,但是还是能很明显的感觉到自己与前面的人有差距,继续加油吧。