NOIP2016小结

来源:互联网 发布:小米盒子 电视直播软件 编辑:程序博客网 时间:2024/05/29 07:30

第一天

星期四调整的差不多了,身体条件还不错,开始比赛吧。
看完三题,花了15min,第一题纯模拟····第二题和第三题都大概知道怎么做,其中第二题跟前几天做过的某道题很像,套路一样。
第一题先切掉再说。
第二题,开始分析,lca为中心,拆成两条路,头尾打类型+1-1标记,问题转化为求每个点x的子树内类型为w_x±dis_x的标记和是什么。这个时候一眼线段树合并,想到处理完每个点子树的情况,合并起来就行了嘛,nlogn,很清真,30w的数据。然而没有想到更简单的做法,一个相当于拆询问的做法。
思考了一下策略,线段树打得很熟,应该不用码很久。割出1.5h给第二题,最后一题留1h10min应该够。然后在考场上打了没打过的合并,拍了没错,居然一次过····
一切按照正常进行,到第三题,想了两分钟就知道做法了,老套路。有点出乎意料,为了稳定,我先读了2次题面,在草稿纸上把DP方程列清楚了,再开始写。20min后修改完所有已发现错误,吓了一跳,没想到这么快。本来想打对拍,但是发现暴力跟正解有很大一部分共用函数,便没有打,而是仔细检查了几遍。
还有半小时,先检查了第一题,没发现错误,然后检查最令我担心的第二题。本来想出极端数据看一下我程序的问题,但是不会windows的手工开大栈,只能继续拍我的小数据,都没有问题。隐隐有点担心,但也没有办法。程序好长好长,只看到了几个能优化代码的地方,没有发现错误。

当天问题

1,第一题<=打成<,很伤,检查的时候重心放在了左右方向上面,没有管下面的代码,于是会出现编号为0的人···检查每一个角落,很重要,至少对于这种很短的模拟题,一定要全部检查干净。
2,第二题,线段树查询的时候,有时候查询的位置超出了范围,我忘记考虑,然而这种情况一般只会出在链上。我本来是要去弄链出来,但是总是栈溢出,根本调试不了。
这里有两个问题,一是没有把很多极端数据出齐,二是不会手工开栈。不能说以为rand的数据都没什么问题,他就肯定没问题了,错误总是出在意想不到的地方,需要特别注意,以前我不当回事,而这道题给了很深的教训,一定要多出各种数据。
3,第二题实际上就是两个拆,拆路径后再拆询问,正如王主任说过的,竞赛题就是多几个弯,转的过去就做出来了。感觉要多从几个角度想,这个做的不太好。

第二天

带着相信第一天AK的信心,开始第二天,心情轻松。
看完题,感觉三题都比较简单,先写了第一题。
第二题挣扎了很久,因为一眼就90分了,我在考虑要不要拿多10分,而10分我又想不到。在想了40min无结果之后,打了90分。
昨晚睡不太好,中途趴了10min。
这时候又只剩下1h10min,先打了暴力,没有分析时间复杂度,感觉对搜索题还没有什么研究。然后再把题目给的额外部分分拿掉了。
检查一下就结束了。
感觉策略不差吧,既然第二题都能90分,那就不能堆太多时间上去。

当天反映的问题

1,对一些套路还不是很熟,第三题很明显的记忆化都没加上去,因为没有想优化。第二题也是那种弄几个队列存就好的题目,这种题ACM的时候是做过的。
2,在搜索题方面要加强。

赛后

这几天身体调养的挺好,保持心情的稳定,不能过喜过悲,一点点危机感,一点点愉悦,这样状态是最好的,戒骄戒躁,方方面面都要。
这是高一第一场,后面路还很长,即使拿了高分,但不能因此看不见与其他人的水平差距,差距还很大,效率有待提高。
保持人的综合稳定,迎接后事吧。
比较重要的一点是养成在主程序打return 0;的好习惯····
要多思考,多想问题,有些基础知识其实不能运用灵活。

1 0
原创粉丝点击