NOIP2018比赛总结

Experience

  • 一年一度的NOIP如约而至,这次比赛是在广州六中。

  • 经过一个月的停课训练,感觉我的水平有了挺大的提升,怎么说联赛一定要全力以赴啊!

DAY1

  • 随意试机,之后就开始愉快地看题了。

  • T1是简单题,扫一遍就可以了,数组都不用。

  • 看了T2,发觉好像没什么想法,可能用exgcd判一判吧。

  • 又看T3,完了,又没什么想法,莫非只会T1?!

  • 还好我心态比较稳健,很快打完T1过了大样例之后就去打T2。

  • 判了倍数的,又将两个数能表示出来的数用exgcd判了,以为可以了。

  • 结果又发现一个数可能被三个甚至多个数表示,瞬间心底一凉。

  • 但转念一想, a [ i ] a[i] a[i] 值域只有25000,那我可以用一个布尔数组记录一个数是否能被表示。

  • a [ i ] a[i] a[i] 排序后逐个判断即可。一打,居然过了大样例,很好,瞬间爽了很多。

  • 此时大概九点半吧,我就去打第三题了。

  • 先是打了很多部分分(55分),什么菊花图、一条链、求直径……

  • 接着乱搞一个DP,复杂度又高又过不了样例,调来调去总是有问题。

  • 在改了好几个问题之后,发现还有一个大问题——只有正解能解决了。。

  • 于是我就自然而然地想到了正解!

  • 先是二分答案,问题转化成选最多的链是每条链长度都大于 m i d mid mid ,看能否选出 m m m 条。

  • 那么用一个set贪心的匹配路径即可,时间复杂度 O ( n   l o g 2 n ) O(n\ log^2n) O(n log2n)

  • 愉快开打,居然又过了大样例!瞬间心态很稳健。

  • 还有大概40分钟,我随便拍了拍,补了补觉就过去了。

  • DAY1估分:100+100+100 = 300

DAY2

  • 到了第二天,我沉下心来开始看题。

  • T1树随便做,而 m = n m=n m=n 的话有点麻烦,如果 O ( n ) O(n) O(n) 贪心的话怕是细节很多。

  • 不敢往下想,于是就去看T2了,想了个自以为对的状压DP,觉得怎么也能拿80分。

  • 看了看T3,44分基础DP,但之后的点没什么思路,部分分多得令人眼花缭乱……

  • 于是我选择先打T2,打好后再优化一下说不定就能A了呢。

  • 结果打出来只过得了2 2,连3 3都过不了。

  • 对着调了很久,但总是不知道哪里算多了,3 3老是输出144,心态崩了。

  • (事实证明是我有个结论限制不知道,方案算多了)

  • 还好发现 n = 2 n=2 n=2 有规律: 4 ∗ 3 m − 1 4*3^{m-1} 43m1 ,共得了50分。

  • 可是由于没打暴力,没能发现 n = 3 n=3 n=3 的规律: 112 ∗ 3 m − 3 112*3^{m-3} 1123m3,很亏,这档有15分。

  • 搞到 9:50 ,还是没什么进展,顿时有点小慌乱,心想怎么也得先A掉T1。

  • 于是几分钟把 m = n − 1 m=n-1 m=n1 给打了,接着去刚 O ( n ) O(n) O(n) m = n m=n m=n ,但是又很烦。

  • 于是我掐指一算 O ( n 2 ) O(n^2) O(n2) 也能过,事不宜迟,赶紧退而求其次,枚举环上的边删掉,每次取最优。

  • 于是这个方法赛后一测 965ms ,我开了vector、五个递归过程(太迂腐了)。。

  • 好不容易调过了大样例(有个地方不小心return了,忽略了几个支链),已经是 11:00 了。

  • 无可奈何,之后去打第三题暴力,很快就得了44分。

  • 但是之后的部分分我却没什么思路(思维太僵化),老是不会换个角度。

  • 咦?还能退而求其次,有个B1档(深度 ≤ 100 \leq100 100) 有8分能拿耶!

  • 我很愉快地去打了。

  • 我很愉快地去打了。。

  • 我很愉快地去打了。。。

  • 结果因为思维僵化,各种小Bug,大样例这辈子都过不了,脑中又很混乱,急于求成。

  • 结果搞了半个钟,**都没搞出来,一仗回到解放前,又改成了44分。

  • 还剩十分钟了,我心情压抑地检查了一下,就没再打了(巨亏~)。

  • DAY2估分:100+50+44 = 194

Summary

  • 今年NOIP就这样结束了,有一种奇怪的说不出的感觉。

  • 总估分:100+100+100+100+50+44 = 494

  • 赛后民间数据评测:100+100+100+100+45+44 = 489

  • 原来是Day2 T2的数据范围看错了, n ≤ 2 n\leq2 n2 不是 n = 2 n=2 n=2

  • 也就是说可能 n = 1 n=1 n=1 m = 1 0 6 m=10^6 m=106 ,于是没了5分,唉。

  • 总的来说,第一天做的还不错,而第二天就有点失误了,好多部分分没拿。

  • 在调程序上花了很多时间,到头来发现方法都不对,做了很多无用功。

  • 不过也给了我们很多启示,例如第一天。

  • 在一开始我看完题后只会T1的情况下,通过打后两题的部分分通悟了其正解。

  • 说明暴力一下子过样例也不一定是好事情,那就不会继续往产生错误的地方深入思考,从而想出正解了!

  • 而且这次比赛没有怎么挂分,估分和实际得分还是比较吻合的,对于我来说已经做的很不错了。

你可能感兴趣的:(总结)