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

    现在看来,真的是挂的很惨。唉,还是自己水平不行吧,不管是D1T3和D2T1的不会写或是不敢写,还是D2T2脑残特判打错。连最基础的骗分也一个都没写。

    Day1:

    T1:看了一下,感觉是个贪心,每次肯定先填最小的,再向两边查找。写了个O(n^2)的暴力,发现大样例挂了,比答案少了一百多,但没看出来什么错误。回头翻了翻样例,发现里面有个0,而我没有考虑这种情况。改了一下就过了。这个算法如果每次最小值都在中间的话,复杂度是O(nlogn)的,但如果数列是有序的,就被卡成O(n^2)的了。于是开始写线段树优化,写了半天还写错了,调也调不出来,下传标记那边好像有点问题。我此时有点慌,发现Day1T1现在只有暴力分,而时间已经过去了接近一个小时,就先去看了T2。后来回来发现不用支持修改,只要记录一下就好了,就写了个ST表。居然又写错了,调了一会发现我把1<<(j-1)写成了1<<j,导致1以上都是0,改了一下终于过了大样例。自己基础还是太差,写线段树和ST表都能写错,浪费了很多调试时间。

    T2:看题目就是个完全背包。不知道为什么,我总感觉今年会有背包。但这题有点奇怪,因为它要完全一样,如果直接这样完全背包不知道对不对,写了一下发现过了大样例,当时希望它是对的,而且我也不会其它的什么算法了。算了一下复杂度,大约是五千万左右,应该不会超时,就没再管它。

    T3:明显的二分答案,因为要求最小值最大。然后发现就不太会了。一开始还以为和运输计划差不多,后来发现不是的,这个路径不能相交。于是先写暴力,20分的m=1显然就是树的直径。看到有几个点是所有ai=1,这就是个菊花图。当时考场上一激动就想错了,以为这种情况就直接sort就好了,还觉得35分非常稳,出考场和smz大佬交流发现想错了,唉,又丢了15分。链的数据感觉不太会写,为什么我每次感觉链的数据都没什么用,思维还是不行。最后大概还有不到一个小时,开始想有没有什么O(n^2logn)的算法,想了半天都不太会,最后20分钟想了一个假贪心,但又要求LCA又要树上差分,没时间写了。这题除了直径,连个骗分的假算法都没有就交了上去。

    出了考场发现一堆人在说题目水,好像很多AK的,有点慌,后来又发现自己T3菊花图写错了。T1竟然是积木大赛原题,我明明做过但在考场里一点印象都没有。以后做过的题目最好回味一下,留点印象,以后做到类似的题目就会好一点,最好在每一道题里都学习到一点技巧。Day1还是不行啊,特别是T3很多暴力都不会。考场上的时间真的过的很快,所以思维一定要灵活起来,打代码的速度也要加快,最好还不能有细节错误。想着明天一定要好好考。

    Day2:

    T1:本来以为有数学题的,一打开,又是个图论题。看下面数据范围,只有两种,一种m=n-1,一种m=n。此时我已经知道了,一种是树,另一种是基环树。立刻写掉了树的情况,有了60分。开始想基环树的情况,想了半天感觉情况太复杂了,不太好写,其实主要还是没想到删边,想到删边就好写了。我有点慌,结果连下边的的部分分也没拿就去看下一题了。下面有两个非常好拿的部分分,搜索的数据和只有一个环的数据。特别是一个环的数据,直接判断就行了,这是比较遗憾的一个地方。

    T2:题目比较复杂。看懂了之后感觉是状压DP,但我不太会写,就开始搜索打表找规律。但我又不太会带优化的搜索,只能枚举每一个格子添0还是1,这样复杂度就太高了。好不容易打出了3的规律,以为有了65分,就没再管它。但后来发现n<=3并且m<=3的数据被我特判错了,唉,又丢的15分。最后怎么就没认真检查一下。

    T3:树形DP。只会写O(nm)的算法,拿了44分。下面的显然不能每次都重新算DP,只能在原来基础上修改,后来才知道是动态DP。其实下面有个部分分相对好拿,就是深度小于等于100的,直接暴力修改它的父亲就行了,但还是比较难写。主要是看到D2T3就不太敢想了。以后拿到任何题目都要认真思考,寻找突破口,不能畏难。

    出考场发现好多人T1都会做基环树的情况,我怎么又不会,还是感觉基环树的题目没做过,又是不敢做。

    出成绩了,只有374分,没打错特判就389分,就算基环树会写也就429分,好像都不是太高。D1T3的分数实在太低了。那几天心里非常难受,如果没有国一就要退役了。最后勉强国一,冬令营是肯定不够的了。

    终于写完了NOIP2018总结。水平一定要进一步提升,学习一个算法一定要学透彻,理解清楚,不能背模板,更重要的是用它解决相关问题,灵活运用,还要会把问题转化为基础性问题,多思考题目性质。思维永远是最重要的,乱搞也一定要会。希望能激励自己。

  • 相关阅读:
    在IE和Firfox获取keycode
    using global variable in android extends application
    using Broadcast Receivers to listen outgoing call in android note
    help me!virtual keyboard issue
    using iscroll.js and iscroll jquery plugin in android webview to scroll div and ajax load data.
    javascript:jquery.history.js使用方法
    【CSS核心概念】弹性盒子布局
    【Canvas学习笔记】基础篇(二)
    【JS核心概念】数据类型以及判断方法
    【问题记录】ElementUI上传组件使用beforeupload钩子校验失败时的问题处理
  • 原文地址:https://www.cnblogs.com/fluttersunny/p/9957967.html
Copyright © 2011-2022 走看看