您的位置:首页 > 其它

NOIP 8.20~8.23训练总结

2016-08-23 14:34 253 查看

Day 1

拿到题目先看第一题,是一道裸的线段树,把式子化简一下就可以用线段树维护。继续道第二题,看上去像最大费用最大流,但是我的想法是每次单路增广,然后修改限制,感觉做法差不多,就先过了。第三题,看上去好像只有SAM能做,但是是多串匹配,我对SAM的多串匹配不是很熟,但是以前也做过类似的,应该可以全部扔到一个SAM里面维护,没有仔细想,先看下一题。数论题,一点思路都没有,感觉这题要弃疗。先打完第一题暴力,然后去打第三题,感觉就是这样打,但是又调不对,但是感觉这题最能做,就一直调,但是最后也没调出来,只能补个暴力。

最后成绩 0 + 0 + 30 + 0,第一题居然卡空间!限制是32M,被出题人坑了。第三题题解是一个非常暴力的方法,看上去是O(N)可是会伪,最后正解好像涉及到广义自动机,没有研究过,打算找时间研究一下。第二题,构图后直接跑一次费用流就可以了,没有我想象的这么复杂。

小结:加强对SAM的理解,想第二题这种题应该更深入的思考。

Day 2

拿到题,发现第一题有点眼熟,感觉以前看过,然后又仔细想了想,好像排个序就没了。第二题,感觉能做,分成三个部分依次加进去。可是接下来,就没什么思路了。然后看第三题感觉好丧,想起了之前讲过的定期重构,可是感觉重构一次就要O(M−−√N)就没仔仔细想,以为要用到Fibonacci的一些奇怪的性质,感觉这题不可做。继续搞第二题,但是直到最后也没有很好的做法。

最后成绩 100 + 10 + 40,第二题暴力都打挂了,看来暴力也要拍一拍!第三题的确是定期重构,复杂度是O(N)的,不用对于每个修改都扫一遍,只需要每个都打个tag,最后再扫一遍就可以了。第二题可以转化成先做两个,剩下的全部让第一个跳,然后就变成了最短路的模型。而我一直卡在了三个分开做。

小结:部分分也非常重要,如果可以拍最好也拍一下,还有思考的时候不要纠结于一个点,要有发散性思维。

Day 3

一看到题,发现第一题是送的,做多有一个奇数和一个偶数!继续下一题,一开始看错题以为是放任意多个,很简单。但是再看了一遍题意发现放的数目是给定的,那就不是很会了。第三题,一开始没什么思路,打完第一题和第二题暴力,去上个厕所,想到这题跟之前的一题差不多,思路基本一样,因为思路比较清晰,很快就打完了。测了一下极限,发现会超时,有点尴尬。想起来可以用rmq有优化lca的发杂度,但是之前都没打过,脑补了好久才知道怎么打。在最后一分钟调出来了,可是对拍的时候对拍的批处理打错了,搞得我以为为程序错了,不敢叫,最后只拿了个暴力分。

最后成绩 30+50+50,第一题挂了,没有考虑1的情况,看来考虑问题还是不够细心。第三题只拿了个暴力分有点可惜。第二题就比较神了,加了改错机制的贪心。

小结:就算到了比赛的最后关头也不要紧张,要稳住!还有做题时要细心把所有情况都考虑到。

Day 4

先看题,发现第一题和第三题是裸体,第二题不知道是什么函数,就先码那两题,第一题感觉代码量有点打,打了一个半小时,调了半个小时发现样例过不了,仔细读了下题,有看错题了……有点慌。先去打第三题,因为就是个SAM没什么代码量,20分钟就打完拍完。回头改第一题,发现我的方法有点复杂,但是打都打了,就调一下吧。但是…每调出来,就跪了…

最后成绩 5+0+90,第三题有个细节打错了,刚好拍没有那种情况,只没了10分还是比较开心的。第二题发现就是一个欧拉函数,线筛一下就没了,感觉如果调出第一题顺带第二题也就打了..主要是看错题太坑。要好好练一下语文。

小结:读完题先手推一次样例。读完题先手推一次样例。读完题先手推一次样例。不能再忘了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: