这次NOIP,本来已经做好了滚粗的打算,然而……
好,先自我介绍一下。偶是个OI界的小混混,资历不长算来好像也只有5年多,目前就读初二,在cxslzx以敲水题、膜拜大佬为生。每次模拟赛都被巨佬吊打嘤嘤嘤,不过向巨佬请教问题倒是挺方便呐,感觉每学会一个模版noip RP瞬间++(不存在滴)我真的是太弱弱弱弱了,NOIP 2017连普及组复赛都没进(真的),落后分数线2分……不过今年我卧薪尝胆、发愤图强,依靠着题海战术,终于以94分的高分进入复赛(我是不是废话有点多)……
前方高能!流水账警告。
前两周的宁波赛刚刚落幕,11月份的NOIP接踵而至。为了更好地迎接这场重(du)要(liu)的比赛,班主任特批偶们不上文化课前往机房训练模拟赛。啊哈哈哈哈,刚得知此消息的我们鸡冻万分(“哈哈哈哈可以不用做作业了万岁~~~”),可转念一想:要是拿不到一等岂不是GG??没脸见关东父老了啊555~~~压力山大啊!(突然觉得自己好可怜嘤嘤嘤)
于是乎,我们每天24小时机房模拟赛外加自学模版,敲代码敲到自己头晕脑胀……
两周的紧张训练中,我们与初三的诸位大佬们有了更多的交流和切磋,智商完全处于被碾压状态。感觉最近脑子不是太好用,明明很明显的一道模版题,或者是裸的纯暴力,自己要想好久。(宁波赛我就是因为裸暴力题挂了)智商下线,深表无能为力……
浙江省的竞争恐怕是全国最激烈的了,尤其是省内的宁波杭州绍兴等地区。去年的NOIP普及,浙江一等线280位列全国最高,几乎年年如此。今年的分数线估计也低不了,这是后话。
两星期的时间很快过去了,天天都有模拟赛,感觉自己也没进步多少。该新学的模版也没好好学,以前的算法掌握得也不是很牢固,看来省赛只能拼RP了。
深呼吸!相信自己。
2018年11月10日,双十一的前一天,终于到了。
早上洛谷打卡是大吉(宜:参加NOIP,I AK NOIP!),心里轻松了点。
早晨8点从学校出发,和同学们乘坐大巴车前往杭州学军中学紫金港校区赴考。
两个半小时左右,非常有意思的旅途:
大声聊天、大口吃零食、疯狂打豆豆、疯狂飙歌,睡个啥全都给我起来嗨!!!
抵达考点是11点不到,一下车就感受到了比赛的氛围,人山人海,真是热闹啊。
我们在报告厅门前见到了正在谈笑风生的zzj——我们的教练。
随后立马前往报告厅休息,准备下午的考试。我们拿到了比赛的用品袋,里面有一些草稿纸、一支笔、一本比赛指南和四张餐券,另外还有每个人的参赛证。
我们看了学军中学的宣传片,表示省重点果然不一样,教学环境、氛围明显高出一等。听说学军和杭二中的编程教学处于全省乃至全国领先地位,比如这两年NOI金牌就有好多出自这两所中学。赞!
大约到了11点半,有人告诉我们可以去用餐了,于是我们都迫不及待地跑到了食堂……
结果食堂的饭菜让我们大失所望,饭菜没得选只有一素两荤不说,竟然还没有汤,水果也就只有一根香蕉……
每个人都是一碟白菜、一块红烧肉还有两根小鸡腿。至于味道吧,不能说差,但也不敢恭维,一般般。菜量也很少,估计是因为复赛选手太多了,用餐的将近800人,质量数量明显缩水……(我们可是交了钱的啊,260块还不够大家吃顿好的??不如去撸clz小胖纸最爱的肯基基麦当当)
吃好饭顺便去小卖部溜达了一圈,买了点芒果干等小零食,下午比赛要到6点呐~~吃货的肚子不能饿坏
然后zzj组织大家去CCF海报那里合了影,接着就放大家自由活动了一会儿。cy老师带大家到了操场,他和我们一起跑了一圈,我像疯了一样冲在最前面(好久不跑步了,腿都生锈了),400m感觉跑出了新境界~~好兴奋呐~
可是跑完就废了,腿酸得不行,谁让我嗨过头了呢
比赛下午2点半正式开始,地点在体艺馆。
全省实际参赛的选手共741人,大概700多人在体艺馆中,还有一小部分在科学馆机房。
近千人同一考场!确实场景壮观。
考场分为ABCDEF六个区,每区有6R*20C共120个机位,这样共有720个座位。
比赛用机竟然是笔记本?(雾)发现还带外接键盘(可以),就是屏幕比较小,有点不舒服。
坐下以后距开考还有几分钟,主席台上广播大声说不准动电脑,考前模版没得敲了。。。
2点半,公布了试卷解压密码,是……改革开放四十年???……
赶紧打开试题,浏览了一遍标题,觉得好难,最后一题是树,遇到图论觉得自己要死了·……
接着发现T3时限2000ms,心里一凉,肯定是道玄学+逗比题。
接着直接看T1,还没看完就笑了。
输入字符串,统计字符个数??(我记得好像哪本初级班教材里有)
迅速敲完,然后看T2,发现是一道很明显的暴力。
10分钟码完,然后看了一眼数据范围,N≤109,C[i]≤105,那乘起来不久1014么,所以开int64就可以。
至于初始化么,15个9应该没毛病,嗯。
(P.S.当时就是这样想的,后来发现杯具了)
看了一眼大屏幕上的时间,开考半小时不到。心想已经A了前两题,顿时轻松不少。赶紧看T3。
读完一遍题,看到题目要求满足要求的答案最小值,脑子里自然蹦出二分。
可是二分怎么check?这是个问题。贪心??本蒟蒻不能证,貌似贪心是有bug。
那么该怎么做?脑子一片空白。
等等……让我再读一遍题……这…………不会是道dp吧……
Emmmm,按照近几年的出题套路,T3极有可能是道dp……
那么问题来了,转移方程咋写?
有点慌,琢磨了半天。后来迷迷糊糊,不知怎的就是觉得dp做不出,因为该题每个状态的决策有后效性??!
饶了我吧,如果真是道动规,肯定玄学,我也不可能做出来的呀。
又想了大概20分钟,愣是坐着。没辩法,只能先硬着头皮敲个二分+贪心了。
二分顺利完成……接着写函数check……
没想到贪心check如此难写,随便一整就是10+个变量……
(半小时后……)表示已经头晕眼花……
一直在调试。不断地调试。每次总能发现错误,每次都希望欣慰地看到正确结果……
但
然并卵。
我在n次贪心重调后无可奈何地叫停,开始重新检查思路的正确性。结果悲剧地发现思路完全错误。
歧路如此之多,我觉得贪心是不可能了。
接着我就发现时间仅剩1小时半多了,默默毒奶一口,先去肝T4了。
如我之前所料,我 非常欣慰地 从T4看到了图论题目神奇的力量。
题意大致就是从一棵给定二叉树中找一棵子对称二叉树,要求该子树的总结点数最多。
emmmm,似乎好像也许应该可能大概从来没有遇到过这样奇怪的题目(可能因为我题做太少了?)
刚开始一点思路都没有,真的。
后来发觉此题可以暴力,结合数据范围又可以加几个毒瘤优化。
我想不出所谓正解,于是只能决定暴力水部分分。
啃一口面包,开工!
对于每个点的dfs,确实需要一些技巧。搜索的时候左右子树同时搜,并对相应点进行判断,再加几个小剪枝即可。代码实现并不难,思维难度也不高。对于我这个 打暴搜的老手 来说非常轻松。
飞快敲完,然后测样例,发现样例二卡出了bug。经调试发现写队列的时候头指针和其对应值搞错了(汗),修正后秒过。3号样例是个大数据,我本想放弃,但测试后发现竟然也秒过?!仅用了500ms不到?哈哈天助我也,不管他了,直接去肝T3(考完以后一算,时间是O(nlogn),的确不会炸,况且我还加了毒瘤优化)
再次看到T3题面令我有点恶心……
一看时间还剩1小时,心里有点慌。接着就看到附近有几位大佬已经开始扫雷了,玩得不亦乐乎(妈耶他们肯定已经AK了,天呐,我太渣了) 考场上玩游戏岂不是美滋滋 (逃
拼命思考,拼命调试,然并卵。最终发觉AC无望,还是水部分分吧(我不会连部分分都拿不到吧?惊恐)。
数据中10%是m=0,这意味着……啥?这个大巴是瞬移的?!(骚的一匹)那答案不就是0么。嘿嘿,10分到手。
剩余的数据就很坑爹了,暴力做法拿不稳,估计全TLE;贪心吧,实在恶心,难不成还要WA。
正解DP是写不出了,怎怎怎么么么办?……凉拌……
最终离结束还有20分钟的时候,放弃挣扎,果断写无脑变态贪心,每次车回来,如果有人就拉人。
然而还是连第二个样例都过不了。
还剩3分钟的时候,反复检查了文件夹,确定没问题后就开始发呆,心里想着这回应该要凉了,1=可能要飞了。
终于结束了,我一饮而尽桌上的水,头也不回潇洒地离开。
还没出体艺馆就碰到了几位大佬,还有我的好盆友dc。交流了一下题目,知道了T3的确是道dp,T4的做法尚不明确,有人说就是暴力,但是我们学校一位dalao–nn用了记忆化(what?此题可dp?),据说还有一堆玄学优化,反正样例也全过了,佩服佩服,膜拜啊。
接着陆续见到了同学们,大家的神情都有点恍惚,仿佛还沉浸在题目中……
已经傍晚6点多,天黑了。肚子早已唱起了空城计,我们拉着好几个人一起去吃饭。
饭菜虽说不是很丰富,但总比我们学校好。晚餐稍微丰盛了点,多了个汤,水果是苹果。
我们一边吃着饭一边聊题目,clz和rhc都对T3没把握,我呢就更别说,估计只有10分了,GG。
当他们听说我T4竟然过了所有样例,都很惊讶。问是甚算法,竟秒过大样例。我说是暴力+优化,但不确定是否会被卡常or卡巨坑,可能大样例有点水吧,毕竟答案很小。
然后clz就说:“Orz,wlf大佬AC T4。” (注:这是神奇的一句话!后边再说)
我当即脸红:“小蒟蒻编的暴力诶,NOIP T4真会是暴力么”(心里确实有点小期待)
他们齐声说:“大佬,肯定AC辣~~”
然后我们都笑了。
晚上7点多从杭州学军中学紫金港校区出发,踏上归途。
回程万般无聊,找不到事情做,又是大晚上的,窗外黑漆漆一片,风景也没得看。
车里甚是热闹,在一番激烈的题目讨论后,忽然又变得挺安静。
车载电视上放着那部经久不衰的被我们看过千遍万遍的几乎所有大巴车上都会放的《人在囧途》……没几个人看。
考完以后心里有点凉飕飕的,总觉得T3T4都得炸,尤其是T3。大神们都说正解是DP,而我……竟然连一点头绪都没有,更别说写转移方程了!……
冷静了一下,思来想去T3起码还有10分,而T4,估计30~40吧,数据水还可以高点。
这样的话,总共是230~240分左右。炸。默默祈祷T4不要太狠。
嘿,管他呢!反正考完了,这周末剩余的时间可以浪了,没作业哈哈哈哈嗝。
坐在左边一列的某佬cjq看上去很疲倦,不过他没有睡着,emmm。他在梦游。
刚刚还躺着睡得好好的,一动不动像具尸体,不知怎的就诈尸了,跳起来乱吼一通,接着睡。(汗)
E,这孩子怕是劳累过度精神失常了。
过了一会儿他开始和坐在旁边的clz小胖纸死缠,两个人开始亲密拥抱……(clz别打我啊,逃)
clz打不过他,于是就跑过来和我坐一起。接着cjq也过来了,继续梦游一般地瞎锤,见啥锤啥。
好恐怖呐,于是我们开始了阵地保卫战,2V1版植物大战僵尸。这场战斗持续了……emmm……半小时。
玩累了以后cjq就去睡觉了。
接着听到隔壁cjc大佬在唱歌(恕我直言,他的嗓音如同母鸭一般悦耳动听)。一直在唱“大海啊故乡”……我承受了将近半小时的音波轰炸,实在忍不住了,于是和他对唱,怼回去。哟哟,看谁唱的更溜。后来他怼不过我,就闭上嘴了……(哈哈)
大巴到达学校已是晚上9点多,时间不早了。
回到家之后,马上登洛谷。发现比赛题目已经发出来了,前三题数据也造好了。
回忆着比赛时敲的程序,全部又手打了一遍,用了半小时左右。
T1 AC没毛病,但是T2是神马情况?WA 40%。天呐,不会是数据精度问题?莫非是高精?
orz洛谷,这下gg了。我在比赛就要结束时,不放心int64,还特地改了qword,可是谷测仍然炸。
改了好多次,ans的初始值也改成了999999999999999999,绝对值也换了,最多只有80分。
。。
NOIP T2绝不可能用高精,这怕是数据有锅。算了,下一题。
T3可谓是惨不忍睹,除了那闭着眼都能拿到的10分,剩下的全部WA。我写的所谓贪心不过是儿戏罢了。
真是欲哭无泪啊。
T4敲完后去测,发现数据只有两个点,仅为样例,秒A。由于数据还没造好,所以就先去睡觉了。
第二天上午起来发现有数据了,兴奋一阵,赶紧提交评测,天,A了。
太棒了。于是洛谷发帖庆贺自己暴力竟水过100,有人回复说“这个暴力是O(nlogn)的,肯定不会TLE”。这才明白暴力就是正解。这正应了clz之前的那句话,哈哈。CCF你太恐怖啦,吓得我的小心脏呐。
赛后还写了题解,有兴趣可以看下我的暴力思路:
NOIP2018JuniorT4题解 P5018 【对称二叉树 】 by Chavapa
这样粗略一估,分数在270左右,实际可能更高。因为洛谷的数据总是很强的。(哇,kkksc来了,逃)
一瞬间突然充满了希望,我感觉前途一片光(du)明(liu)。
比赛初评成绩发布原定于11月20日,实际延期了。21日中午,午自修开始前,有好朋友告诉我成绩发布了。
官方评测成绩竟然达到了310,而谷测最高只有290左右。CCF的T2数据看来非常水,让我全过了。T1和T4无疑都A了(谁让他们这么简单呢),T3不出所料,只有10分。
12月初,最终成绩发布。获奖名单随之公布。出乎所有人意料,今年的1=分数线出奇的低,只有230分,可能是zj历年来最低的一次。我最终以310的成绩荣获1=,全省排名约为37左右。对我来说已经非常满足,好开森啊~~~~
我的同学们有好多都卡进了一等线,有的恰好在线上。结果已出,他们都欣喜若狂,互相祝贺实现了这个小小的梦想。我也感动万分,这一年的卧薪尝胆果然没有白费啊~~
至此,NOIP 2018华丽落幕,相信这场比赛在每一个奋斗的Oier的心中都留下了一抹靓丽的色彩。
下面说说我个人的比赛心得:
根据近几年的发展趋势,NOIP 2018Junior的题目难度并没有太大变化,我甚至觉得难度大幅度降低,尤其是T1。T3和T4,我认为应该互换位置。因为对于T4,在考场上最容易想到的算法就是暴力,代码实现难度不高,并且有充足的部分分,难度低于T3。毕竟T3的玄学dp不是每个人都能想出来的(有好多人误中了贪心的毒啊),是吧?
关于1=分数线的问题,自然非常明了。zj每年的1=分数线都维持在250-300左右,并不会有太大波动。另外由于近两年参赛人数激增,所谓“炮灰”自然就多,这样的话只要你不是特别渣,拿奖的概率非常高。高到什么程度呢?只要A了第一题,后面的题胡乱骗点分,奖就到手了。当然对于绝大多数人来说,二三等奖并没有什么卵用,重要的是一等奖的席位,这与你今后的升学有着密切联系。恕我直言,普及一等真的不是什么难事,即便在全国最强、竞争最激烈的省,任何一个蒟蒻经过长久不断的努力,都能轻松拿到梦想中的1=。这是实话。
忠告各位普及组的Oier们,学好基础算法是你在考场上成功的关键。对于在NOIP中极其常见的搜索、动态规划、贪心、数论、图论(遍历)、字符串,甚至各种花式暴力算法,都必须能得心应手地运用。各种编程的小技巧也是必不可少的技能:卡常、优化、剪枝、骗分、乱搞……学会灵活运用,起码能提升30分,相信我,不会错的。
我接下来的学习目标是,不断巩固先前的算法(比如我非常薄弱的dp以及图论),然后尝试接触学习高阶算法,不断提升自己的思维能力,当然还要锻炼打字速度,哈哈。新的2019,我决定为提高组做好准备(不知道老师会不会同意我这个大蒟蒻参加),扎实学习(当然也不能忘了玩呐),让所有人都看到我的进步与成长,加油加油加油!!!
第一次NOIP获奖 祭。
CXSLZX-Chavapa
结稿于2018.11.
最后修改于2018.12.15.