zoukankan      html  css  js  c++  java
  • 2020省选联考翻车记

    正所谓光脚的不怕穿鞋的,今年是我第一次考省选,本来也没打算进队,心态非常放松。星期五(6.19)去试机,发现有windows,我还感到很开心。晚上睡得不错。事实上省选的两天精神状态都很好。

    备注:两天的考试时间都是8:30~13:00。

    day1 大翻车难以挽回,太贪心满盘皆输

    摘要:(0+40+[0,15]?=[40,55]?)

    最后(10)分钟把T1改WA了。

    T1,经过简单的转化,变成一个可以用二分+数据结构维护的问题,进而联想到使用线段树上二分。这个思路是比较自然的,题是简单题,难点是卡常。这题正解是(O(nlog n))的复杂度,数据范围(2 imes10^6)。下一档是(2 imes 10^5),只有(60)分,估计本来是想给(O(nlog^2n))的,但写线段树上二分一不小心常数写大,(100)分就挂成(60)了。

    高手会用树状数组来实现,轻轻松松通过(%%%罗神)。我和大部分人一样写了线段树上二分(完全不知道这么复杂的操作用树状数组怎么实现啊QAQ)。而且我写法比较丑,查询时要调用线段树三次,这就导致我常数非常大。随机数据本机跑了5秒多(事后知道本地电脑很垃圾)。当时写+卡常一共用了3个多小时。看时间不多了,只好假装AC,去看T2,T3。

    T2有(15)分纯暴力,接下来(25)(m=0)是套用二项式定理,我也拿到了(这一看就是生造出来的特殊情况,想给蒟蒻一点分)。也就是总共得了(40)分。事后分析我还比较满意。这道题正解是一个数学技巧,见过就会做,没见过就不会。所以考场上碰到了,不会做,那就是你套路见的少了,咱得认

    T3我认为是本次联考最难和最“不可做”的一道题了(对一般水平而言,大佬勿喷)。首先题面就很绕,看完也没什么头绪,看不出方向。所以就直奔暴力分了。(15)分,我写了个(O(v^n imes{nchoose m}))复杂度的做法,算出来非常卡,但实际上常数应该会小一点,也不确定能不能过。更高的分我就完全不会了。

    写完T2,T3暴力回来,还剩最后(10)分钟。本来我的T1程序不改,就是正常拿(60)分(机子快甚至可能(100)分)。但是我不知道怎么搞的,就想魔改一通(在线段树上剪枝,也不知道我哪来的想法 2333)。结果改来改去,给改WA掉了。回家一测才知道,连小样例都过不去。所以T1就这样爆零了。说来,其实就是因为自己太贪心,不满足于(60)分,忽略了求稳,所以挂的很惨,而且(加上csp考的也不高),今年省选已经难以挽回(也就是今年连D都不可能有了)。

    upd:如果没改T1,就是100,而不是之前以为的60

    day2 正常发挥切T2,总分依旧不如人

    (30+100+50=180)

    上来看题。不太会T1, T3。看T2题面好懂暴力又好写,所以决定先刚一刚T2。

    T2是个树+异或有关的题。纯粹的暴力复杂度是(O(n^2))。考虑从(u)(fa(u))的变化,相当于是把所有子节点的权值(+1),再求异或和。我不知道有什么数据结构能实现这个(当时没想到trie树)。我罗列了很多想法,例如维护每种值的出现次数(进一步转化为只要维护出现次数的奇偶性),再每次把整个数组右移一位,但这样仍然不好计算答案。之后又想到按位考虑。这个方向对了。考虑一个节点对它祖先的贡献,因为每向上一步值(+1),所以对祖先的贡献,每(2^i)为一段。这样我们只要做一遍dfs,用一个栈维护所有的祖先即可,回溯时打标记即可(类似于差分)。经过这样复杂的思维,我总算是做出来一道题。

    写完T2时大概是10:00,我又不放心,做了半天常数优化,最终10:45左右开始想T1 T3。我认为这个时间分配还算可以,我需要用比较多的时间,去保一道能AC的题,这对一场考试很重要

    接下来看T3,第一档部分分是(2^m),纯暴力。第二档部分分是(mleq n),分(m<n-1), (m=n-1), (m=n)三类讨论一下即可,只要愿意写,也比较简单。第三档部分分相当于所有生成树权值相同,所以只要做一个生成树计数即可,直接上matrix tree定理。这三档部分分加起来一共有(50)分,看起来比较多,所以就先写了这个。因为写了三个subtask,还要相互对拍,所以全部搞完已经12:00了,离比赛结束还有一个小时。

    再看T1,先写了(30)(m!)的暴力。其他的部分分,(mleq 20,21,22,23),看起来就很像状压DP。(O(2^m m^2))做法(其实非常简单),状态是考虑前(i)个位置,填了哪些数。然而我当时一直想的是,考虑前(i)个数,用了哪些位置。然后死活不会转移。直到考试结束。如果能想到正确的状态,T1就(70)分起步了(这也是一般人认为的暴力分),然而我只有(30)分,非常遗憾。

    总体来看,我认为自己day2是正常发挥,但得分仍然比大部分人低:wzy哥哥翻车都有(200+),更不用说一大堆喊着“人均AK”的人了。如果说能提升的地方,就是day2 T1没想出(O(2^m m^2))太可惜。

    反思 day2 T1

    前面说,day2 T1没想出(O(2^m m^2))太可惜。为什么这么简单的东西想不到呢?我觉得跟心态有关。就是切掉T2以后,我的心态变了,变得很浮躁,潜意识里对自己已经满足了,所以难以做深入的思考一道题,往往都是由表及里,有一个转化的过程的(用现在的话说,都是老千层饼了),这就需要思维一步一步向前走。而且每一步,你其实是从未知开始摸索,所以可能的方向有很多,需要你一个一个去尝试,去排除(就像前面写我想T2的过程,一开始也有一个不成熟的方向,后来被排除了),这时候,没有强烈的、做出题的欲望,报以一种浮躁的、试试看的心态,就难以想到正解。这就是为什么我能切掉T2却反而连T1的(70)分都写不来。

    这种心态在我考csp时也有体现,我就不细举例了。我认为,这种心态非常危险。它带来的后果就是,以后在任何一场比赛中,我最多只能做出一道题,之后大脑就下班了!这太可怕了!必须立即做出调整,每道题都要静下心来分析。这一点在我平时的练习中,必须得到体现。

    对题目的评价和总结

    • day1 T1 数据结构题。简单题。卡常。
    • day1 T2 数学技巧题。看数学水平和有没有见过套路了,难度不好说。个人不喜欢这种纯数学题。
    • day1 T3 我还不知道算法。毒瘤题。放一道大家都不会的题压轴,我认为也能接受。
    • day2 T1 DP。简单题。卡常(空间?)。
    • day2 T2 数据结构,树,异或。中等题。
    • day2 T3 矩阵树定理,数论,容斥。中等偏难。

    从难度的分部上看,有点像csp:day1 T3是最难的,day2考三道中等的。

    整套题,知识点考察比较合理(数据结构,DP,树)(常见知识点少了贪心和字符串)。虽然有数学题、毒瘤题,但常见知识点考察的也很到位了,这一点要好评!

    卡时间,空间,就比较无聊了。

    我个人比较喜欢 day1 T1, day2 T1 和 day2 T2,原因就是知识点合理,难度适中。

    有些题被发现是原题,但是我觉得,只要我没做过,能让我有所收获,那就是好题。而且据我所知,见过原题的是极少数,大部分人是考完才听说有类似的题目的,没有影响到公平性(况且谁规定不能考原题了?做的题多不也是本事么?)。

    总体来说,我认为我还是挺有收获的。


    考完省选,就又是新的一年。我就要高二啦!想来,学OI的时间也只剩最后一年了,我要更加珍惜,努力训练。希望明年今天,自己的水平,能有大的提高吧。我还是充满希望的。(哈哈,我和djq正好互补了,我缺水平,他缺“希望”)。

    附:江苏的榜

    我最终220分,rank 42。在nfls,如果有5个D,应该是差一名拿到D。怎么看,这个故事都和罗神去年一样,可惜我没有罗神的实力。/kk

    另外,徐队也是(ZJ)rank 42,所以我和徐队贴贴

  • 相关阅读:
    event事件学习小节
    简单的碰壁反弹效果
    从全局中通过class类名获取标签
    js中常用的Tab切换
    将一串字符串转变为驼峰样式(字符串练习)
    js控住DOM实现发布微博简单效果
    使用js制作一般网站首页图片轮播效果
    使用js实现带有停顿效果的图片滚动(按钮控制)
    js实现标准无缝滚动
    toLowerCase和toLocaleLowerCase的区别
  • 原文地址:https://www.cnblogs.com/dysyn1314/p/13172976.html
Copyright © 2011-2022 走看看