【随笔】JSOI2021游记/省选反思/学习计划 大概是流水账式的省选记录 省选反思 学习计划

day0——准备、到达前以及试机

  • 像往年一样,今年我父母依旧没有跟着我一起去。不过不同的是今年几乎所有人都有父母带着,除了我和pcf。大概是父母们觉得这个比赛很重要,跟着更能保障一点?还是说不放心安全?或许兼而有之吧。不过我一直觉得这是一个没有什么必要的事情——跟着确实能提供一些帮助,不过依我所见帮助不大,毕竟我从初二第一次参加提高组比赛以来,所有比赛父母全都没有陪同(除了清北冬夏令营,那个没有老师,我妈实在不放心),我过得还是一直挺开心的,也没有出现什么睡晚了导致次日比赛精神不佳的问题。相反地,对于我而言,家长跟着反而会让我变懒、变紧张。每次外出比赛,day1考完的那段时间,我总是会想到这个问题。因为不确定性太大,因为太看重了,我甚至需要去刻意逃避关于考试的东西。那,在这种时候,我是不太能承受关于考试的问询的。尽管经过清北冬夏令营的陪同,我也知道起码我妈是能忍住不问的,但是我依旧难以在这种可能性面前生存。去之前大概想了这么多,最后我父母因为工作上如果去需要请假,就确实没有去。
  • 但是今年有一点不同——没有老师组织我们去,甚至ob和wk都没有去,是一个信息组我不认识的老师带队的。所以我们最后其实是相当于跟着qty妈妈的。
  • 本来,因为没有家长跟着,我是打算这次吃外卖吃个爽,谁知天有不测风云,其他同学的家长们一合计,十几个人一起去饭店定了包间,叫上了我们。不甘,想委婉地推辞一下,结果pcf好像是不太想吃外卖。罢了,就这样吧。
  • 考前一晚我没有收拾东西,因为没什么好收拾的。当晚睡得有点晚了,第二天起床收拾收拾,我妈给我收了一小包衣服,我往电脑里下了部番还有一点视频,就到时间,该走了。
  • 本来番是打算路上看的,结果路上和pcf一直在看训练的题,从上火车开始看,看到到达才看了几套。到吃饭也没看完。一直到8点多,pcf要去洗澡了才弄好。
  • 到了之后,题没看完,先去试机、吃饭了。想写一套多项式exp测测机房电脑速度的,结果写完Poly类就懒得继续弄了。发现机器上有lemon,但是也没有试。
  • 计划中是要9:30睡的。因为我知道是一定不可能在计划的时间上床的——9:30的话,10:00差不多。结果看MeUmy到了10:30。开始担心,第二天会不会有点困。

day1

  • 酒店是7:00的早饭,我6:45的闹钟。6:40就醒了。幸好醒了,因为我的手机竟然没有开声音,闹钟只有振动。
  • 考前两周我一直在和睡觉时间殊死搏斗。我每天都是想早睡的,因为觉得这样会更有精神一点,结果每天都因为各种原因没能做到。有的时候甚至是不知道有什么事情但是就是不想睡。这样实在是有问题的。如前所述,我甚至到考前一天都睡得很晚。这件事情已经实实在在地产生了不好的影响了——起码我的脑子被搞得每天都有点昏沉,做不到训练前期中期那种成绩,而只能做一点机械的题目了。
  • 我那天早上一直在担心这个问题。因为尽管我感觉我睡得还行,可是,我真的还有那种深入思索的能力吗?这话说的似乎有点不太对,反正大概就是这种意思。我不停地去思考知识点,可是思考知识点的结果却是上面写的那些奇怪的东西。我会去不停地想,想我做了什么,想我是不是本应该做什么,想我是不是本应该想到去做什么。可是我根本理不清,也根本想不通。这么多东西,很杂乱且无序地铺陈在面前,我却只能用混乱的眼光去看,甚至都记不住。我觉得这是脑子被睡眠少堵住了,可能更是脑子被一次次的懒惰拖住了。我正是想还原一下我整场考试的心理状态,才把那一件件事情,详详细细但又支离破碎地写了出来。
  • 我到现场等待进入考场的时候还在思考这个问题。
  • 不过有意思的是,我Day1的座位是401-01。旁边是一个南外的小朋友,他吃的东西有点香。(OI中的“小朋友”称谓也是一个很有意思的事情,不再展开了。)
  • 把三道题先看了一遍,第一印象——不难,每道题都有很多分可以拿。当时估计这一天拿到200分是合理的。
  • 大概知道T1就是一道很简单排个序的题目。需要讨论一点东西,不过应该不是很复杂。事实证明,确实如此。我调了一会儿,过了大样例,但是拍出了很多错,卡了好一会儿。另外,我一开始把题目看错了,幸亏先写了暴力。
  • T2我第一反应是高斯消元之后做点处理。可是剩下的(n+m-1)个未知量我实在不知道该怎么安排。后来发现可以用一些方法做到剩下((n-1)(m-1))关于(n+m-1)个未知量的不等式,每个不等式涉及其中的三个量,其中有一个量在每个式子中都出现了。我觉得似乎可以推出差分约束,可是到最后都没能推出来。最后写了个搞出一些比较弱的条件凑一凑的瞎搞。能过(nleq 3)(m=2)。当时觉得还行了。现在得知可以过题的方法之后,发现差分约束是一个正确的思路,先搞出来一个比较弱的条件获得一个满足b的限制也是一个很好的思路。应该先搞出一个满足b的方案,然后利用差分约束调整,所有式子就只设计两个量了。
  • T3写了一个每次加入一条边,维护(n^2)组点对经过的最小点最大是什么的东西,这个是(O(n^2m))的。却没想到可以每次加入一条边,维护(n^2)组点对经过的最小边最大是什么,这个是(O(n^3))的。当时很兴奋,因为我这时已经有100+50+44了。而事实上对于那个(O(nm^2))的东西,即维护每个点何时能到达另外一个点,可以通过只在每条边有效的时候走这条边(有点类似并查集,虽然基本不一样),这样就是(O(n^2+nm))的。
  • 出考场,因为发现好像大家都会T2,对考试闭口不谈。(其实谈了,声称拿了310)。
  • 下午是最煎熬的。因为从过去到未来都是不确定的,而当下又什么都做不了。颓废了一个下午,3b1b是真好看。另外,史莱姆挺惨的,被打了300年。
  • 还是不可避免地陷入过奇怪的思考,不过堀与宫村最后一话还没看,所以还是很开心的。
  • 晚上还是没吃成外卖。
  • 入睡时间应该和昨天差不多。

day2

  • 状态似乎确比昨天好一点。不过脑子还不是很清楚。
  • 附近有wallbreaker和pcf。两边都是南外的,右边是一个小朋友,仿佛有点坐不太住,动啊动的。他好像是初一的。
  • 三道题好像比昨天的还简单。T3我看一眼就有75,很爽;T1一眼会做,很爽;T2直接dp就有很高的分,很爽。
  • 开心地码T1,没有意识到主席树不必架在序列上,多花了很多时间写了一个(O(nsqrt{n}+qlog^2n))的东西。好在基本没出错,一下就过拍了。
  • 写T2。上来算错了,直接写了一个(O(2^nm^2n^2))的东西。写完测大样例才发现事情不对。不过鉴于一遍过编译,一遍过大样例,也没什么细节,就没拍。(出了考场还是有点后悔的。)不过根本没有意识到这个dp可以非常简单地优化掉。很惨。
  • 码T3。直接码支配树。爽!我(O(nqlog n+mq))无敌了!就问你D2T375分,还是这种阴间算法,我是不是无敌了!但是我根本想不到可以稍微思考一下加入一条边之后产生的变化,而如果那样的话,我将真正无敌。事后回想,十分不甘。至于为什么只有60,只能说,我不该轻视一棵简单的树(我把bx == fa[by]写成了fa[bx] == fa[by])。而现在想想,我弄好一棵树的情况之后,本应立刻反应出我对支配树也可以干这件事。
  • 自信满满交题,垂头丧气离场。
  • 开始讨论题目了。发现pcf,qty有点凉,我好像要赢了。不过当天回家没敢到处找民间数据,回了ob考试情况之后就关掉了QQ。

省选反思

题目总结

总体分析

  • 最终得分:D1:100/100 75/50 44/44 D2: 85/100 60/60 60/75
  • 两天的T1都做麻烦了,花了一些不必要的时间。虽然从事后时间分析的角度上看,这点时间的作用不大,但是能发现这几道题都很简单,不该做不出来。所以早点把T1过掉之后或许对心态有益。而T1做法复杂或许是需要克服的。一方面需要思路清晰,另一方面需要思路敏捷。第一方面是要好好睡觉,第二方面是要多打一点cf之类的比赛。
  • D1T2,D2T3是写奇怪的东西上头了,没有去思考另外的角度。这其实是心态问题。就像我椭圆大题上来直接把方程列出来想解它。这和T1的第一个问题是一样的。
  • D1T3,D2T2是思路没有打开。其实和两天的T1是同样的问题。只不过T1可以用其他方法过去,而后面的题不行罢了。
  • 综合来看,其实就是那两个问题。

细节分析

  • D1T1:这道题是一道简单题,没什么好分析的。值得一提的是这道题我写了比较复杂的分类讨论的逻辑,后来发现其实逻辑没必要复杂成这样。以及我最开始写的时候有些东西没有讨论清楚,做了一点无用功。
  • D1T2:题不难,补题的时候一小会儿就做好了。这道题问题在于没有经过适当的处理就直接上差分约束,但是实际上这个直接上的差分约束是可以通过一些方法化简出来的。因此根源还是对差分约束的不熟悉。很难受。
  • D1T3:这道题太简单了。(O(nm))能过,这也是合理的复杂度。但是随便写一个(O(n^3))都能过就很离谱了。这道题的思维难度也不大,我甚至当场已经想到了几乎所有的内容,可是我最后还是只拿到了暴力分。
  • D2T1:这道题我写了一个(O(nsqrt{n}+qlog^2n))的。这道题的思路总归是逃不开起点处找最近的1,之后找祖先,以及终点处二分,找到最近的点,之后找祖先。我的问题就在于找最近的点那里使用了怪异的算法,用了树剖加主席树。后来发现这是三个log,就换成了分块,做到了现在的复杂度。但是事实上完全可以直接写主席树,从父亲那边改过来。主席树的继承关系是可以为树形结构的。这样就是(O(n+qlog^2n))的了。而事后再思考,会发现可以使用离线加(O(1))k级祖先的技巧做到(O(nlog n+qlog n))
  • D2T2:纯粹就是我是憨批。转移的那个优化我甚至想到过。但是我没有想到这样一来我就再也不用记(m)的那一维,转移的时候直接少掉个(m^2)
  • D2T3:最终复杂度是(O(nq))。所以我有点难受为什么我的(O(nqlog n+mq))没有过。不过这个求(q)遍支配树也确实有点离谱了。

策略总结

  • 我坚持了第一件事:对拍。对拍实实在在地救回了我三道题。而在写标算之前先把暴力写掉也确实救了我一命。虽然没有遇到不得不交暴力的情况,但是先写了暴力确实会安心一点。
  • 我坚持了第二件事:看空间。我D2T1一开始空间开大了,还认为512MB说什么也不可能出事,MAXN和MAXSQR使劲往大了写。结果就差点出事了。但是其实这是一件非常险的事情,因为如果(m)到达(1e5),我的空间就说什么也不可能开下了。如果像这次一样,到考试结束的时候再注意到这件事情,那就不再是好险这么简单了——我那道题就完了,直接少掉很多分数。所以最好的策略应该是在刚开始写代码的时候就留个心眼,把开出来的空间算一下。
  • 我坚持了第三件事:先写暴力,再上头。我D1如果直接冲T2,会导致T3没有时间写。所幸在冲之前先把T3的暴力写了出来,保住了保底的44分。

状态总结

  • 睡眠不好,有太多念头存在于脑海中。
  • 思维僵化、迟钝,基本做不到太多另外思路的开辟和探索。这也许和睡眠不好有很大的关系。这是我这段时间状态的一个外在表现的总结。
  • 心态不是很好,太看重这个事情。其实也无怪如此——我这一个学期,文化课基本没怎么弄。相较于OI,文化课会使得我更没安全感一点。而这一点才或许是第二点乃至第一点的内部原因。为了客服这一点带来的容易上头、思维僵化等等诸多问题,才必须靠较为标准化的竞赛策略方可活下来。

学习计划

  • 算法知识点
    • 差分约束(2021_04_16)
    • 线性规划
    • 图论
    • 网络流(幸亏没考)
    • 计算几何
    • 仙人掌
  • 打cf、atc
  • 及时补题,多写