第三届山东省青少年创意编程与智能设计大赛总结
作者:互联网
前言
应教练要求而写的,于是就咕咕了很长时间,基本上都是“流水账”。
Day0
上午提前在学校门口集合,等其他人来的时候想上厕所于是溜进学校上厕所,出校门的时候还被保安拦住,解释了好一大通才被放走。
晚上的时候出门吃饭,此时选择恐惧症发作,最终一号人决定吃肯德基。(然后因为同学不喝冰水于是用可乐换来了喜茶)
吃完晚饭一直颓颓颓,最后发奋图强,拿出OI书出来看了看《算法竞赛进阶指南》,发现之前水过的一道最短路题能用bfs跑得更快,研究了一下有什么略有扩展的bfs,发现了个不那么显然但是也挺简单的双端队列bfs,还有书上写了个“堆优化bfs”,仔细想了想发现这个东西不就是Dijkstra吗。
睡觉,并听室友对我如何练体育的建议。
Day1
来到比赛现场,场地很正式,设计的主题图案也很好看。
开场前毒奶:这种比赛不大可能考多项式啥的科技。(此处埋下伏笔)
快进到比赛
刚坐下位置,坐在我们左边的来自淄博实验中学的队伍问我:“请问您是do_while_true吗”
一脸震惊的答应说我就是,然后开始了传统艺能互相膜拜。
我心想我在山东有这么有名吗?后来发现是因为经常水山东学生群所以被认出来了。
比赛前工作人员说正常比赛只能一个电脑写代码交代码,但是这里给两台电脑,都可以写代码,但交代码只能一个电脑登账号交了。
队友(对我说):“那为什么不能两个电脑都登上账号交代码呢”
比赛开始发现确实能。
8:00开题,我大略浏览了一下题面共有八题,队友开题就攻T1当场出满分做法,然而直到结束我们也没把它写了。
发现T6的名字是“基础卷积练习题”,我顿时心肺停止寻思着咋就考多项式了,仔细一看发现是求一个式子,再仔细一看发现我做过,是道把解题突破口放在数据范围中的诈骗题。
然后就开写,交上去发现60分RE,左调右调,没发现哪里数组越界,这个时候队友把T8过了。
然后就开始写其他题的暴力,后来回来调T6的时候发现复杂度写假了,改了一下就过了,到此我才发现评测结果反馈有问题,会把TLE,MLE等错误反馈成RE。
T3是个看起来很组合数学题,想了很久还是只会20分的dp,发现别的队过了50分,研究了一下部分分发现只有20,60,100这三档,当场迷惑,后来发现他们是优化了优化把同样复杂度的卡进了50分。
T7看一眼觉得很贪心,想了想发现连最低档的分也不会,是我们唯一一道零分的题目。
大概在10:00~11:00的时候我们领先第二名200+分在第一名,后来淄博实验的队伍切掉T2T8开始步步紧逼,分数差距越来越小,第一的宝座岌岌可危。
这个时候才想起来有个T1,赶紧把70分的暴力写了。
大概在11:30+的时候淄博实验超过了我们,领先大概20~30分。
我回去攻T4大模拟,发现这个模拟挺简单,封装一下时间和钟表指针夹角之间的转换,过了样例,交上去只能拿60分,后面的点一直WA,然后就开始调调调。
后来队友把死磕大模拟的我拉过来一块想T2,连续想了几个做法都假掉了,同样也是最低档部分分不会写。之后就开始猜数据,发现有一个点答案是3,有一个点答案是4。最后还是靠我多年骗分经验,判断输入第三个数的奇偶性分开输出3,4,骗走了20分。
离结束还有30min左右,也就是12:00前后,发现这个比赛不封榜。我浏览了一遍全局,基本上能写的分都写了,除了T1队友开场就秒但是一直没写的巨麻烦线段树满分做法,以及T4没调成满分的大模拟。
看了一眼榜单,只比第二名淄博实验队高5分。
接下来就是整场比赛最刺激之处了,我果断选择藏题,故意把T4的60分交成0分,这时我们队变成第二名,比第一名少55分,但是实际上我们藏了60分没交。
这个时候淄博实验的第一题还是5分,一直没搞掉70分的无脑暴力,一旦他们写出来那70分我们队一定会与第一失之交臂。
然后,然后,他们躺在椅子上开始休息了(wwwwwww)。
最后的30分钟我一直在调T4,一直没调出来,淄博实验队的一名队员也坐起来开始写题。然后我啥也没写出来,他们也是啥也没写出来。
离结束还有3分钟,我把藏的题交了上去,翻身成第一。此时淄博实验队已无力回天,我们以5分差距险胜。
整场比赛下来似乎像两个队伍的比赛,事实上也是这样,第一400分,第二395分,第三名就断崖式地掉到了140分。
但是此行也不亏,回顾全局,T6一眼看出通过数不超过100的LOJ原题似乎是我整场最亮眼的表现,然而也没有立即满分,而是出了一个小错误导致过了一个小时才满分。回去看了一眼,发现那道题我根本没做过,当时只是用嘴巴胡了一遍,嘴巴做题确实能使得见到题多、广,但是不写一遍的话就不会注意到一些自己实现上可能出现问题的小细节。
最后的藏题让我感受到了这场比赛的刺激,赛后也和淄博实验的两位同学交到了朋友,棋逢对手的感觉真的是无与伦比的快乐。
Day2
回家后在LA群问了一下比赛的T3(那道看起来很组合数学题)和T7(唯一一道爆零题)的做法。
T3是计数入门题,算个多项式快速幂即可,然而考场上一直在想dp,虽然我不会多项式快速幂但是队友能写出来,感觉还是亏了,组合对象的转化十分的浅显,答案也是一步就能得到。
T5 EI回答我说是 \(\mathcal{O}(n^3)\) 的dp用卷积优化到 \(\mathcal{O}(n^2\log n)\),有很多细节需要商酌,不过大体思路是这样。感觉这样的题即使想不到用卷积优化也至少要想出来 \(n^3\) 的dp,但还是技术差,没有想到这个dp。
考前信誓旦旦地说绝对没有多项式,结果回来问了俩题都是多项式题......
下午的时候学校考初中组的回来了,yhy说考了我跟他说过的题,也是LOJ上的原题,但是他忘了怎么做了。我去LOJ上看了一眼,只有7个人做过。看来做没人做的野题还是比较有用的吗(笑)。
附图:
标签:发现,比赛,多项式,编程,大赛,第三届,60,淄博,dp 来源: https://www.cnblogs.com/do-while-true/p/14711298.html