zoukankan      html  css  js  c++  java
  • NOIP2017 总结

    联赛结束,但是我并没有得到预期的结果,特写此文分析原因,希望我不会就此退役。

    回顾一年,我做了什么?

      2016年联赛,我水了两天,抱着挂掉的心态拿到了1=。

      2016-2017寒假,参加集训,三天考试两天心态爆炸,最后滚粗。当时的想法是别人运气好。

      接着我认为我实力合格了,想着在省选中拿一个高分。当时我的想法是DAY1A一道,DAY2A一道,剩下暴力顺利进队。

      HNOI2017给我狠狠地打了一巴掌,但我还是像1842年的英国政府一样沉溺于自己的梦里。

      HNOI:

      DAY1 我先试探T1,摸索出的解法的一半,但还是只有20分,为了展示我会一半的解法,我把正解和暴力结合,接着得到了0分。

      T2我想着莫队去做,但是实在不会,到最后心烦意乱以至于暴力都不会打,打了10分的n^3交了,得到了10分。

      T3我到了最后才做,打了模拟得了70分。

      DAY2 当时我觉得DAY1失误,DAY2要A掉两道题。但是众所周知我根本没有省队的实力,DAY2还是想着A题,挂掉了。

      最后做HNOI总结,我算是稍微知道了些不足,但仍然觉得有HN前30的能力,按照历史的行程,接下来联赛该打我脸了。

    NOIP2017:

    Day0:跟着ABS打隔膜。。。。

    Day1:早上起来还算清醒,进入考场看到第一道题就觉得不对了。为什么第一题是EXGCD?不应该是模拟吗?说好的模拟呢?翻到第二题,模拟。。。 为什么模拟题这么难打,预测代码要上80行。 再看第三题,这题难道不是个记忆化搜索的裸题吗,就是0环比较难处理,到时候想一想吧。

    先干T1,看到旁边长郡的高一学生已经开始敲代码了。。。我一急就想到了一个贪心,很明显是错的但是思维混乱的我无法发现。打完之后写了个对拍,一拍就错,一试就知,发现贪心是错的后我心态几乎爆炸了,但我知道还有一道大模拟在等着我。我就开了T2。

    T2有个想法,做树,我就打了,然后过了样例1,去测样例2,错了一个。改一下,错了下一个,再改一下,又错了下一个,改了五六次之后我终于过了样例2,接着我把它关了。

    回顾T1,我想到了一个EXGCD的做法,这个做法比较神奇,大概就是用每次增加一的思想去做,这样可以正好得到一个a*(某个数-1)+b*(某个数-1)再加上一的答案,并可以证明答案不会比这个大。

    接下来做T3,T2真是做得我心态爆炸,已经11:00了我才开T3,虽然我知道是记忆化搜索,但有如下问题无法处理。①有环的话DFS会无限循环②剩下的时间只有一个小时,我打出来也不一定调得出,以我的代码能力很有可能打出来是错的。那么我就打一个30分的暴力吧。接着我花了20多分钟打了30分暴力,然后试图去打60分的,花了十多分钟打不出来选择放弃。

    剩下十几分钟我在试图证明第一题的正确性,但是证不出来,到了在最后三分钟我才记起来我需要去查第二题,接着我试图把第一个样例给T2去尝试,跑完之后,外面的预览看起来是对的,我很高兴。接着我打开了里面,倒数第几组好像错了。。。。!!! 当时我数了是倒数第三组。但是太急结果数错了,提了第九组出来单独测试,答案竟然是正确的,第一反应是我的数组没有清空吗,我在检查数组清空情况,直到下考也不知道是哪里错了。到了后来我才明白原来是我的判断没有判F i n n。 挂noip预备。

    Day2:我知道Day1挂了,所以我想能不能从D2翻盘,似乎是不可思议,但我必须尽全力去做。开考后发现第一题其实我是会做的,并不难,于是我打了一个我的想法的做法,后来测试是正确的。剩下两道题,在判断之下我觉得T3会送很多分,T2应该可以AC。先开了T2,第一反应是最小生成树,但是这个最小生成树与深度有关,数据范围中n很小,似乎要用搜索或者状态压缩。我在考前有一个想法,NOIP每隔两年考一次搜索,这道题应该是搜索,于是我往搜索的方向想,想到了一个O(C(n*(n-1)/2,n-1)*n)的想法,可以过70分数据,但是由于我Day1挂了,70分不能满足我,于是我开了T3,希望在T3上多捞点分。

    T3第一反应很难,分析后发现只与抽走的行和最后一列有关,于是有一个O((n+m)q)的模拟。可以拿三十分,但是我Day1挂了啊,30分根本不够补,于是我花了更多时间在T3里面。 随着思考的加深,我进入了平衡树的大坑中,必须求KTH,或者打标记,但无论哪样都不是我这种人能够在剩余的两个小时内打完的。我继续想能不能不写平衡树,但实在想不到。原本我预测可以拿到80分或者100分,却因为代码能力差放弃。

    接着我T2T3一起处理,T2的70分算法我打了一会儿之后打不出来了,剩下时间根本不允许我打出剩下的代码,因为这个代码难调。于是我把T2的40分做法, T3的30分做法,和T2的70分做法一起打,在剩下的40分钟里面,我写了40+30分的代码,剩下10分钟用来写70分的代码并一遍写对的几率太小了。我只能因为我考试策略不对被迫放弃那可以多拿的30分,又要因为我那薄弱的代码能力放弃可以多拿的50分。

    这样一看,今年联赛从多方面能暴露出我的问题,虽然一次联赛不能绝对地展现我个人的实力,但是各个方面的问题都是实力薄弱的体现。这一年下来也是我值得吸取教训的一年。如果要比喻的话,这一年的我就像一个有腿伤的小朋友一样,在上一届幼儿园运动会的时候正好腿伤没有发病, 拿到了比较满意的成绩。接着长期不参加运动会,自认为自己跑得很快,等到新的一届运动会,腿伤发作了就得到了这样的结果。

  • 相关阅读:
    CodeForces 682B Alyona and Mex (排序+离散化)
    CodeForces 682A Alyona and Numbers (水题)
    CodeForces 682E Alyona and Triangles (计算几何)
    CodeForces 176B Word Cut (计数DP)
    CodeForces 173C Spiral Maximum (想法、模拟)
    Spring源码剖析3:Spring IOC容器的加载过程
    Spring源码剖析2:初探Spring IOC核心流程
    深入理解JVM虚拟机13:再谈四种引用及GC实践
    深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
    深入理解JVM虚拟机11:Java内存异常原理与实践
  • 原文地址:https://www.cnblogs.com/1-1-1-1/p/7838418.html
Copyright © 2011-2022 走看看