[NOIP2015总结]下雪的比赛

25 篇文章 0 订阅
15 篇文章 0 订阅

前情提要

当我还是一只初二大水佬的时候,我就逗比地去参加提高组送死了。想想那一次提高组,第一天第二题居然放错了文件,好好的100分完美暴零。然后最终两天总分400+,Ag滚粗,默默膜拜500+的酸子。


比赛前夕

盼望着盼望着,NOIP终于来了。想想上一年每天都想出两题,今年应该也至少有4题保底吧。
当然题目也可能会有些难。
晚上开会,symbol发问:“大家觉得题目难度会怎么样?”
自信的栋栋口出狂言:“水题!”
symbol笑着拍拍他的肩膀:“这你就完蛋了。还是不要轻敌,题目难度可能很水,也可能会很难。”
开完会已经很晚了,睡觉前忽然想起熊老师布置的总结任务。酸子说:“我已经在脑子里总结了。”好,那我也总结一下吧。

首先是上一年NOIP的惨剧千万不要再发生,文件最后放,改了程序一定要记得及时放进文件夹里。
从GDKOI2015的经验来看,遇到难题一定不能慌,考试时不要想着别人会怎么怎么样,专心做自己的题,全心投入。看题要细致认真,不要因为看错题而耽误了时间。
GDOI2015时对拍还是用得少了一点,今年一定要多对拍,并且要运用其他各种调试方法。最后至少要预留40分钟检查,对拍,保证能对的一定对。
类型一定要开好,不要爆了。
好了,总结了那么多,感觉应该没什么问题了。


Senior-DAY 1(morning)

8:15~8:30

早早地就进机房试机了。一个考生跑到评委那里不停问关于STL的问题,评委坚定地说:“可以用,都可以用。”恩,我也放心了,虽然好像不会怎么用上。
打了个sort调试STL,本来还想打个set,一时忘了怎么打,算了。
ZIP密码什么鬼……

8:30~9:15

一看第一题,我瞬间无语了。再三看题,这简直没有什么能坑我的地方。
第二题,好像好难,不过上一年看第二题是也是这个感觉,应该想想还是能想出来的。模型很简单,在一个所有点出度为1的图上找最小环。先跳过。
第三题,瞬间想笑。NOIP贴吧大犇,NOI2014重庆队队长nodgd,给我共享了他和两个省队爷一起出的一套NOIP提高组模拟赛,第一题就是这题,除了神奇的“四带二”意外,一模一样。当初他的题解写的是暴力,代码又长又臭。我想想,觉得好像除了暴力剪枝外别无它法。
回头想第二题,从出度为1入手,不久就发现这题是一堆环套树模型,还是挺简单的。
第三题,断定是暴力,但是怎么实现是个问题。应该开个数组存码数模拟即可。
此时已经9:05了,我貌似三题都大概想到了。我很想开打,但想想35min的想题时间是不是太少了,就在看了几遍第一题,确定没有坑的地方,又再次证明了一下第二题图的特殊性,再三检查思路,感觉没什么问题了,就决定提前开打了(我之前给自己限定的想题时间是50min)。

9:15~11:00

第一题打着打着,突然想到某些程序风格不严谨的人可能会将四个if连着打,不打else(我平时就是这样),这样会被坑(然而这样貌似连样例都过不了)。
第二题(我的方法)细节有些多,坑了一点时间。
第三题注定又臭又长。打了很久,打完了第一个样例就错了。调出来后第二个样例超时,跑出来后错了。这时时间已经不多了,只得暂且放弃这题,去打对拍。

11:00~12:00

第二题出数据程序有点难打,要保证有解。我是先搞了个长度为 300 的环,再在其基础上随机构造数据。
弄完拍的两个程序已经花了20分钟了。一拍就出错了QAQ。
换用小数据对拍,调试之后发现原来有个东西没清空。
换回大数据对拍,又出错了。这时还剩20分钟,我吓。
别慌,换回小数据,居然拍不出错。还剩15分钟,怎么办???
我深呼吸,告诉自己这100分是可以拿到手的。直接用出错的大数据调试,采用输出调试法一看,原来有两个点构成了环,这样方便调试多了。终于发现还有一个清空放在了一个if里面,有时不会执行清空。
改完后还剩10分钟,还没建文件夹呢。拍大数据无误,放文件。
今天拿第三题换了回第二题。没事,反正我第三题不一定对,第二题倒是该拿的分。


Junior(afternoon)

无聊的中午

中午吃饭,我们讨论试题。这才发现第三题是个大坑,原来各种带鬼是错误的。然而我的程序本来就有很多问题,所以我也不怎么指望第三题拿分。
我一直和别人强聒不已的是我的对拍,挽救了我第二题的 100 分,当然这次还是我第一次采用输出调试什么的其它调试方法综合检查,感觉作用很大。
吃着吃着饭symbol走过来说我们下午好好休息,考完了就考完了。我和栋栋酸子几个苦笑着说还要去考普及组(23333)。symbol笑笑:“不要搞到普及组分数还比提高组总分高了啊!”
嗯,怎么会呢?
后来我们几乎在开考前10分钟才到考场,好淡定的感觉。

2:30~3:00

ZIP密码什么鬼~~~
看了看题目,第一题是来搞笑的,再看多一遍,嗯,是来搞笑的。
第二题好像比第一题还搞笑,再看一次,好像真的是来搞笑的。
第三题,第一眼看见括号,拆!拆了一个括号,就可以在每次枚举时更新答案了。然后所谓 yx=zy 是来搞笑的,就是限定 zy 是偶数,开个颜色数组存奇偶性即可。
第四题,看着像贪心或是动态规划,数据范围貌似提示时间复杂度是 O(nlogn2) 。应该是 i 的答案与i1的答案有关系。粗略想了想没想出来。
15min过去已经想出3题了(233333)。
继续再想第四题,只想到了dp的部分分。
然后30min已经过去了。前三题打起来应该很快,打着先吧。

3:30~4:40

前两题打完看一下,没什么问题就放一边了。
第三题稍微卡了一会儿,都是些代码的小错误。
然后开始想第四题。
我认为答案应该与前 i 大的a有关系,就着手证明各种策略的优劣性。
一开始的贪心非常水,后来开始逐步完善。但在这途中我犯了个意识错误:我默认只有前 i 大最右边的一个可能被换掉。然后我自以为贪心已经没什么问题了,就开始打了。

4:40~5:40

很快就打完了第四题。但是光是调试就调试了一会儿。
打第三题对拍很快,基本上没什么问题。
第四题一拍就挂了。我一惊:不会是贪心策略完全错了吧,不会是拿不了AK了吧!
调试时一看,发现了之前的那个意识错误,所幸总体思路是对的,稍微修改一下就可以了。
改之后再拍,没问题了,随便看几眼代码,应该行了。我把两个不停打印Accepted的对拍程序平铺在桌面(不要问我为什么),建文件夹,检查文件名。
酱包上了第三次厕所(233333)。

5:40~6:00

在各种检查中度过。


DAY 1(evening)

和栋栋酸子他们讨论试题,什么,两个人都打了主席树(2333333)?
酱包打了两棵线段树(233333)。
你们就不能让NOIP比赛NOIP一点吗?看我排序加贪心多简单。
普及组这局应该稳了。
考了两场试,好累。做了一会儿作业,就上楼和他们小腐。
今天比赛验证了对拍的重要性,甚至连贪心策略都是通过对拍完善的。提高组第二题时间耽误得多了一点,第三题其实不难,要是有时间肯定能拿下。


Senior-DAY 2(morning)

想不到这局没稳,欲哭无泪

8:30~9:10

由于之前几次的第一题都特别水,我这次第一题就轻敌了,有一个想法几乎不经大脑就出来了,连验证都没有验证过,就想当然认为是对的:肯定是删掉连续一段石头。
第二题看了一会,好像是 dp ,但是还没想出时间复杂度较优的方法。
第三题一看吓了一跳,原来NOIP居然会考察 lca ,这一看怎么都像GD系列的气派。最大值最小?难道是二分,但是不知道怎么判定。
回头想第二题,想到了一个看似较快的 dp ,算了算时间复杂度,嗯 O(nmk+n2) ,好像可以过。
第三题,想起之前一道类似的题目,发现要删的边肯定在最长任务上,不然根本不会影响答案。所以就转化为一条链上,一条一条边移过去,更新答案,然后只需记录这条边左边最大值,右边最大值,和经过它的最大值。
貌似想出了三题,好高兴。
随便理了理第一题思路,好像没问题(都不知道自己当时怎么想的),开打。

9:10~9:50

啊,第一题样例错了!
我执拗地认为是细节打错了,再三检查,好像没问题。
难道是思路错了,我这才开始手算样例,然后才发现我的想法是多么愚蠢!
不行,沉住呼吸,这是第一题,肯定能拿下,既然是最小值最大,那肯定是二分了。但是这判定有些难。我想到一种贪心,但是不知道怎么证明,只好感性理解,而且之前遇到过这种贪心,记得是对的。没办法了,开打。
折腾了很久终于搞出第一题了。

9:50~11:00

赶快开始打第二题, dp 比较难调试,坑了一些时间。
第三题不适合在当时我这种紧张心态下打,打了一半,关键部分还没开始,就已经11点了。没办法,暂时放弃,去打第二题对拍。

11:00~12:00

第二题对拍不知道怎么打,测个极限数据。咦?怎么跑了20秒还不出结果?
测90分数据,还是跑很久不出结果。
不对呀,时间复杂度不是算好了吗。我仔细审查代码,这才发现有个变量,在每次循环中会改变 k 次,而我认为它只改变了1次,所以真实的时间复杂度应该是 O(nmk+n2k) 的。
我感觉整个人都不好了,怎么祸不单行啊?幸好我及时想到了优化,时间复杂度降为 O(nmk) 。但是这个程序又花了我很久时间,调试了半天才调出来。
此时只剩下15分钟了,我想第三题是没戏了,昨天 200+ ,今天 200 ,虽然不如意,但还算好吧。

DAY 2(noon)

中午讨论,发现第三题80分是很容易坑的,后悔前两题没想好,耗费时间太多,导致第三题只能交白卷。
准备上车启程离开,忽然有人问我:“你第二题空间开爆了吗?”
我一愣, 128M 的空间,怎么会爆呢?
“你是不是 nmk 的数组?”
“嗯嗯。”
“这样会超的哟。”
“……”

1000×200×200×32bit=1.6×108byte=156250K=152.59M

等等什么鬼,空间华丽原地起爆, 100 分灰飞烟灭。
考试时我是真的几乎没考虑过空间的,记得我是看了一眼 128M ,就感觉只要不作死开什么 108 的数组就不会爆,但真的没有实际算过。
就开个计算器的时间,想不到省了,就丢了整整 100 分。
今天的策略和心态真的是差透了。为什么会这样。应该是太轻敌了。
被symbol说中了,提高组总分不够普及组多,该好好反思了,来之前还想拿1=来着。


Final Source

Senior

DAY 1

230分,前两题如愿过了。第三题居然坑了30分。

DAY 2

100分,第二题完美起爆。

Junior

400分,然而是水的。官方数据第四题水得一笔,我第四题有一句话明显打错,居然侥幸过了。


Summary

思路一定要验证!没有十分把握,一定要手算样例,不能嫌麻烦。不可以想当然。简单的题也不能轻视。
不能因为有的问题平时几乎不出现,就忽略了,要仔细思考所有犯过和没犯过的问题。空间问题平时出现的少。一直以来只有空间很明显可能有问题,我才会去算,这次检查时也没检查。以后遇到 dp 一定要考虑是否开滚动,空间要开好,不要爆了!
事实证明留一个钟检查的十分重要,十分有用。但是不能过分依赖对拍,也要认真肉眼看代码。普及组第四题就是对拍对了就不管了,结果过不了纪中数据。还要测极限数据等等,反正多管齐下,确保没有失误。
码的速度要适当加快了,当然这前提是码之前思路要整理好,明确好。这次比赛可以说题目是都想出来了,但两天第三题都没有时间打,很可惜。起码得把部分分拿下,这次我就是连部分分都没拿。
时间复杂度这种关键的东西也要算好,不要错了,不然影响很大。
考完了就考完了,也不要太伤心,毕竟很多大犇初中连Senior都没参加过。但安慰归安慰,反思一定要做好,下次绝不能犯这些错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值