3.4考试小记

  又一次爆炸……

  上来之后读了一下题,第一题像是一道fft,第二题第一反应想不到原始暴力,第三题没看懂。于是开始先做第一题。第一题推了一下式子发现好像做过原题,就是Bzoj4332分零食。再次确认了一下式子正确,理论复杂度O(n logn logn)之后开始打码,中途忘了一点细节,重新手推了一下式子。在开始一个半小时后打完后开始对拍,小数据都没问题。开始看第三道题,重新读了一边题之后终于得到了正确的题意,打了一个看似O(n^3)实际1*10^4一秒内也可以跑过的暴力。这时候还有两个小时多一点。开始去做第二题,看了一下发现给的模数并没有实际用处,打出了n^2的暴力。由于一开始混淆了一些数组的概念,调的时候费了点时间。这时候后突然意识到还没测第一题的极限数据跑了一下发现自己T惨了。仔细检查了一下发现好像是常数的问题,各种卡常,但是始终T,最后测验了一下大概极限是跑到5*10^4,于是最后第一题估分从100降到了70分。回头继续看能不能想到第二题正解,由于涉及到“匹配”这个问题开始往字符串方面想,然后就陷入深坑无法自拔,后来想到了bitset,但并不是很会用,也就放弃了(考后wq证明可以A而且只用800b)。

  考试结束后发现第一题被卡常卡死,除了针对n^2的点以外最小的都是7*10^4,于是一个理论O(n log n log n)的做法活活被卡到与n^2做法无异,酵母菌同样打的O(n logn logn),但是他打的是cdq,常数很小,成功的卡过去了,人比人气死人这句话还真不是白来的……正解就是道普通的求逆题,O(nlogn),后来事实证明,算法里有fft的时候常数要算成log……对于NTT的常数太乐观会死人的。

posted @ 2018-03-04 21:32  Hzoi_joker  阅读(100)  评论(0编辑  收藏  举报