NOIP2022 游记
不要恐慌
本文所有涉及 NOIP2022 相关内容均在比赛后更新。请不要恐慌。Dat -1 / 207
早上想了很久,把上次 ARC 的 D 过了,觉得不是非常困难。然后研究了老半天“为什么 freopen + std::cout + std::ios::sync_with_stdio 不刷新缓冲区会有输出的问题。
下午就做了个 2100,复习了下板子,就出发了。出发前问 wcr,明天会有什么题(wcr 光辉事迹:成功预言 ICPC WF H 题以及 联赛有交换差分数组和方差),wcr 说可能有括号序列,颜色,单点修改,我说构造大师 wcr 怎么不说说构造,wcr 说最好别有,我也说最好别有。
然后就出发了,出发前波特磁暴尝试通过异或来判断谁还没上车,不愧是波特。
拍到了 wtd 逃跑中的帅照
[照片待补]
在车上嘴了一个 ABC 的 F,然后开了个 小白月赛的 F,秒杀了,还挺开心的,然后车上的高水平选手就开始加强,不知道后来加强得怎么样了。
晚上看了下世界杯,然而并不懂足球,所以不看了。又看了一些 NOI vlog,以及多头在 NOI2022 上的表演,然后睡觉了。
晚上梦中的联赛还是在很久以后,没想到就是明天了。
Day -2 / 206
早上是联赛前最后一场模拟赛了。开局看 T1,发现数据范围十分奇怪,居然是 \(750\),同时 yyandy 说肯定是 \(n^3\) 卡卡常。我十分不信,觉得 mak 不会放个暴力让你卡卡常。然后呱呱呱嘴了半个小时的 \(n^2 \log n\) 假做法,再啪啪啪写和调了一个小时,然后发现做法假了,十分自闭。于是改成了暴力。然而发现我的暴力是 \(n^4\) 的,更加自闭了,决定先看 T2。
T2 效率极低地胡思乱想了一会儿似乎想出了个不太确定的做法,听说大家都过了就决定写写,然后写完调半天后又发现假了,然后非常自闭。一直到比赛结束都没做出。
其实今天这场挺有意思的。
T2 是给一个带权竞赛图,要以权值的花费反转一些边使图强连通,求最小花费。考场上想的是进行 dp,\(f(i)\) 表示让前 \(i\) 个强联通分量变成一个的最小花费,转移就枚举一个位置,然后把当前位置和那个位置间最小的一个反转,再加上枚举的位置的 dp 值。然后觉得这个反转出一条路径来并不能保证强联通,实际上是可以保证的,因为把这条路径抠出来,由于是竞赛图,剩下的肯定都可以由 \(1\) 到达,然后这个路径上的可以倒着走回来的时候到达,求一个最短路即可。
考场上的做法看起来像正解,但是确实是假做法,因为这求的不是把最短路的边长加了一个奇怪东西吗。。。
T3 也挺有意思!
题意是把 \(n\) 个糖分给若干个人,没人至少一颗,相邻两人糖个数必须恰好相差 \(1\),一种方案的贡献是 \(c^k\),\(k\) 代表左边的人糖数比右边的人多的次数。那么一个比较简单的 dp 是和为 \(i\),最后一个是 \(j\)。
然后魔法的地方开始了,不容易想到,还有一种 dp,考虑每次在前面加入一个数,然后把后面的批量加一和减一,这样我们就可以操控第一个数了。设置一个阈值 \(k = \sqrt{2n} + 1\),当 \(a_1 \ge k\) 的时候使用整个神奇做法,此时序列长度只有 \(O(\sqrt n)\);此时不可能有的被减到 \(0\) 及以下,\(a_1 < k\) 时直接使用开始的那个 dp,这时最大值只有 \(O(\sqrt n)\),这样复杂度就变成根号级别的了。
这样对第一个数根号分治的我还头一次见,眼前一亮。
晚上这个题写完卡卡常卡不过,就算了,去想了下上场 ARC 的 D 并且和候嘴瞎嘴了一些其它事情(比如他进队之后要做的事情!),然后啥也没做出。
Day -3 / 205
上午模拟赛终于做出两题了。然而写两题 f 两题。
晚上想出了那个 ARC C,感觉挺一眼,但是瞪了俩小时才想出。然后想了下 D 还未果。
Day -4 / 204
今天加赛了一场来自校外的模拟赛。
模拟赛开局撞题,直接换了一套。T1 是个类似正则表达式中 .
和 *
的字符串匹配,开始时想了一下是不是要建个图啥的,后来发现直接 dp 就行了。然后因为把 \(n\) 定义成了 bool 调了一会儿。
T2 大概是每行通过给定随机数生成器和种子生成 \(n\) 个数,要求区间 \(\operatorname{mex}\) 的第 \(k\) 大,然后再对每行的答案加权求最大。比赛是“敏锐”地注意到期望最大 mex 只有根号级别(然而这个是错的),就一直在想枚举值域然后有什么单次值域的做法能统计 mex 不超过它的区间数量,但想来想去只有双指针做法,看上去不可能做到单次值域。
T3 看上去似曾相识,似乎我做过一个类似的原题,z 宝也证实确实是今年的某个 Div.2 E,所以想了一个多小时弃掉了 T2,去想 T3,很快就自以为会了正解,然后调来调去到最后都过不了大样例。
出场一问才知道,原来那个“加权”是重要条件,按权值排序后保证答案是递增的,所以只要统计 \(n\) 次就行了。真真是惊喜了,而且这题居然赛时没人通过。T3 和原题也不一样,套用原题的做法是错误的。
但是 T3 也有些眼前一亮的,从来没有见过这样的线段树题。题意是给一个序列,单点修改,询问通过“每次可以把两个相同的 \(x\) 变成 \(x + 1\)”的操作得到的最大不同数字数是多少。显然可以拍到值域上每位留至少一个然后进位来贪心,加一的时候可以直接在线段树上进位,而退的时候就不太好做了。取而代之,我们不要维护最终的结果,而是维护前面进位的加上当前这个数的和,小于 \(2\) 时就是最终答案,大于等于 \(2\) 时是偶数就是 \(2\),奇数是 \(1\),然后线段树上维护区间 \(0, 1\),奇数,偶数 的数量。可以发现进位和退位的时候只有最后一位会发生 \(0, 1\) 的变化,其它段只要把奇偶反转就可以了(前面一定是够减的),那么就对区间修改打 tag,单点修改在下放所有标记之后单点修改就可以了。可以说是利用题目性质的“分化”了的线段树吧。
然而这个题晚上调了 2 小时 40 分钟。错误大概有真实值下放的小问题,p + p + 1
漏了加一,查询没判区间,以及直接修改最底层时忘了修改真实值等。
然后晚上调完这个题想了下 ARC 的 C,有点思路,但是还是没想出来。
以后模拟赛四十五分钟不会做的题就写个部分分先跳吧,几场模拟赛看来,一个小时内不会做就是真不会做了,像 Day -38 那样很久之后想出来的经历似乎没有过了。
Day -5 / 203
模拟赛一进场发现小机房就我一个人,真真是奇了。开 T1 开始时想了下贪心,发现不太对后改想 dp,然后很快就想出来了,感觉状态不错。
然后看 T2,发现是个构造,并且白送了 50 分,就想着先去看看后面的题。发现 T3 似曾相识!似乎是某个 AT / JOI 题,然后仔细回忆了一下发现啥也想不起来,但是看这个题的限制感觉挺可做的就开始冲 T3,猜测应该是由 2 的幂次的限制可以把图的边权即边数都缩小到一个比较小的范围,但是没有发现什么连边的限制,只发现了若是走右下只要连最近就可以了,但是显然最优情况可能有其它走法。
接着搞了一个伪证想出了个很假的做法,哔哩啪啦一顿写,还把俩小样例给过了。但大样例当然是 WA 了,想和许久修修补补,最后造了个小数据把自己叉了,于是想了整场的 T3,得分,零。
赛后看题解发现只要向右下走的确实是连最近的就可以了,向左上的也是,向右上的也是……分成八个方向都是!然后由于是切比雪夫距离,连的边一定是一段行列上连续的,优化建图即可。令人震惊的是这个二的幂次的处理居然是写 bitset 高精度?!我还以为有啥绝妙的性质呢。以及 T2 其实 80 分做法非常显然,不过满分做法挺神奇的,算是眼前一亮吧。
启示是不要被以前看到的像的题所误导,以及想了一个方向怎样应该套路式地想想其它方向。要跳的题不要啥也不想就跳了,说不定送的分更多呢。以及证明就好好证,不然只是浪费时间!
下午订正了一下模拟赛然后写了前天的那个 G,大概一个小时过了,代码还挺短的。晚上传了翻译和题解。然后开个 APIO 时看了题解但没有写的 2500,发现又不会做了,想了一会儿还是不会,最后又看题解了,还因为精度问题调了很久,最后只想了一下下 ARC 的 C。时间又这么溜走了。
Day -6 / 202
上午效率极低地打洛谷 NOIP 模拟,本以为只过两题要垫底了,结果 rk18?看样子洛谷比赛打的人不多啊。
下午本计划赶紧把昨天的 G 写了,并传好翻译和题解,结果效率极低地写了一会儿后出去剪了个头发然后瞎逛了若干圈,下午就没了 /ll。
晚上 ARC 自闭了,五分钟过 A 还是比较快的,然而不会 B!一直到 103 分钟才过 B,感觉这个 B 非常困难啊,或许我该多做 ARC 题了。
Day -7 / 201
这模拟赛搞得我很自闭,只会一个 T1,还挂成 20 了,场上想了很久的 T3,大概的转换思路蛮对的,但从来没有见过这样子处理相邻位置贡献的排列的 dp 的方式,止步与考虑插入了。这个题挺眼前一亮的!
晚上 ABC 的 ABCDEF 都特别简单,G 上来先想了个假做法,都写了好多了才发现不对,然后重新想,卡在不知道怎样判断一个 SG 函数能否被异或出了,想了很久,最后几分钟的时候忽然发现插入只执行了 \(\Theta(n)\) 次而不是 \(\Theta(n^2)\) 次,所以插入时吧它和每个都异或一下存下来就可以了,可惜来不及写了。
但是凭借手速如愿上 1Dan 了!好几个月以前的 Master / 1Dan 的愿望总算是达成了。
Day -8 / 200
距离去年联赛后开始停课的时候已经 200 天了。啊啊啊两百天了好想发电啊等联赛前一天一定得搞个联赛前发电啊啊。
模拟赛 T3 不是很困难,但 卡空间 实在是没想到这也可以线段树维护,考场上就在想这题如果可做可能是大概怎样做的,得出的结论是不可做 就没想过这能线段树维护,虽然讲了后感觉挺套路,但是可以这样做也满神奇的。
晚上看见别的同学在打小白月赛,因为上次 AK 了,但在 F 上被诈骗了蛮久,就去开了个 F。不过这次较快地就想到了。但是没想到这都能写挂一点调半天,最后大概用了半个小时多才过。
然后看了看 HUAWEI Challenge,想了想觉得很不可做,于是只能是祝愿 houzhiyuan1234567 取得好成绩 给机房发泰式青柠 为 AtCoder for Chinese 赢得资金了。
接着开了个 2300 的 AGC 构造,不会做,AGC 的 2300 大概比 ABC 的难得多吧。瞄了眼题解发现猜的结论不对,正解好像很智慧,那就别浪费好题了,等以后试试智慧题吧。
Day -9 / 199
没有模拟赛,所以开了个 AFC 比赛,做做 2100 ~ 2300,争取这个难度能快速做出,然而……根本快不起来,一上午想一会儿题看一会儿 psz2007 写前端,一上午只写了四个题。
下午更寻了一些,一个题很快秒了,但是调来调去调不出。
晚上也是几乎啥也没干的状态。 /kk
Day -10 / 198
期中考出成绩了,小目标达成了,但是其它科目非常拉跨。奇怪的是信息技术居然 f 了一分,痛失满分。这也能 fst 的?
然后是模拟赛。很快把看起来难做的第一题给做掉了,然后 T2(这个题加上单点修改) 不会,自闭了。赛时发现对于每个 0 - 0 的空,不需要插入 1 的限制形如一段区间被询问区间所包含,那么如果没有修改就可以二维数点。但是修改就很不可做的样子了,这个修改影响的区间似乎并没有什么性质可以批量修改。而且 NOIP T2 让你写主席树也不太可能吧。赛时以为是什么魔法题,想了整场,暴力都没写。
后来发现……确实有一点点魔法的。转换成 1, -1 后显然的必要条件是把折线图拉到开始的高度以上,这样最高的高度就是 一个减去前面最小值 的最大值,即最大子段和。由于倒过来也限制了,所以得把最后一个拉到相同高度,即最大子段和减去原来的区间和。但是有一种特殊情况,就是最后左端点右端点如果在同一高度那么还是会超出(因为每步会跨 1),这样的情况只有全是 -1 的时候,需要把右端点多抬高一步。
晚上胡乱写了几个 2100 ~ 2300,但是效率不是很高啊,简单题写半天。
Day -11 / 197
哈哈今天是大丑的一天呢!
早上信心满满地打模拟赛啊,第一题见过原题,很快会了。第二题读完题 DUANG 一下扔到 trie 树上做个转化,然后贪心搞搞 dp 搞搞,再一看哇啊啊,看错题了,那修修就好了呀,咔嚓一下就会了。仔细一看数据范围,有些不对劲啊,嗯嗯嗯,毛估估有些状态是没用的,有用的大概只有 \(n \log n\) 个吧?让我来证一个……证一个……好像状态去不掉啊。然后不会了。
结果是个普及组题,直接来就行了。
那看 t3(一条路径只记 \(k\) 调边权最大的边,求最短路),嗯,哦哦,这个问题一眼就是把小于某个值的边置为 \(0\) 呢,然后看下是不是最短路在长度大于等于 \(k\) 的时候?看起来就是凸的!wqs 二分!冲冲冲!写完啪一测,小样例一遍过,大样例来吧!停停,怎么要 14s,这个复杂度不太对啊,等等,大样例也不过啊。哦哦,边权有重复,那如果只记大于等于 \(w\) 的边,就是把边权都减去 \(w\),最后再把答案加上 \(w \times k\) 就行了。“这个 trick,我是见过的”。然后不过大样例,自闭。
可又是胡说,你哪里见过! std 是注意到直接枚举减去的值按照上面那个 trick 做就是对的,不会算入不合法的答案。《我是见过的》
然后垫底了。自 CSP 前一场模拟赛之后包括真实的 CSP 我似乎场场垫底耶,怎么回事呢? /yiw 或许这也是《珍贵的体验》吧。
赛或补题。最后一题是给出根,询问 dfs 序为 \(x\) 的点编号(按照编号从小到大遍历儿子, 强制在线)。这题还蛮有意思的,每次重新计算肯定是没啥前途的,所以考虑只求一次 dfn,怎么把询问转换成原树某个子树中 dfn 第几大的,那么就考虑把父亲放在哪里,对每个点求出在他父亲前面(候嘴称为“左边”)的个数,和在他父亲后面(“右边”)的个数,然后倍增一下到 \(2^k\) 级父亲左边的和,以及从 \(1\) 开始到每个节点的路径上右边的和(因为要开始跳右边了肯定是到过根了)。然后查询的时候一直跳找到对应的子树即可。
感觉也不是很困难?
晚上继续大丑,因为有消防演习,总共只有两个小时,然后开了个 atcoder for chinese contest,标题为“今天要做快些”,然而……emm。
啊啊构造来构造去构造不出,和候嘴嘴了一下然后写了半天发现假了,尝试修了一万年发现根本不可修,然后看了题解直接笑出声了。
呵呵,呵呵。
Day -12 / 196
今天没有模拟赛,上午先补文化课教室困扰我已久的 arc118d,瞄了眼题解想了想觉得还蛮简单的,就是细节没想清楚调了很久。然后 vp 了场 div2,结果发现不会 D 了。
下午补了 D (这个 D 很精彩!眼前一亮题!)并又开了一场,这次总算没有卡 D。
身后一群人开隔膜,还不时发出声响,受不了了,跑小机房去了,结果没人打隔膜了,但是听候嘴嘴了一晚上……候嘴不愧是候嘴。听他讲起来 ICPC WF 直播很精彩,真真是电竞了。
明晚不让候嘴嘴了!
Day -13 / 195
G 果然是做出来了,但是想得有些久。上午力扣手速奇慢,居然不记得任意交换的最小次数是 n 减去环的数量了。
下午龙潜月十五同学过生日,让我们吃了个大蛋糕,还蛮好吃的。
晚上把上次那场不会 A 的 Div1 的 D 给补了,非常简单吧,那场真真是错失了上大分的机会了,然后后面没写啥题了,似乎在机房的效率还真的不如文化课教室高?
Day -14 / 194
今天还是比较不错的,上午打模拟赛,下午并不是啥也没干,而写了月赛题,晚上 ABC 第二次 2400 了。
上午模拟赛的 T2 挺奇妙的,核心在于一段的最大值让其中任意一个贡献就可以了,但是赛场上想了一万年想出来个假做法。下午月赛也没想出什么很有意义的题,Div1 A 还想了好久才想到。
ABC 开到 F 的时候才 7 个人过,吓死我了,还以为是什么难题,最后发现非常简单,可惜前面被吓到了,直接能建图的在那里想线段树优化,写慢了。这个事情说明,要有自信,不要被吓到。然而 G 过的人数和 F 差不多,却瞪了好久不会做,明天一定把它做出来。
Day -15 / 193
上了周 whk,考了个期中考。算力极差,数学后面的都没算完,前面的算错一堆,算法竞赛选手不会数学,给 OIer 丢脸了。本打算期中考的时候多做做 OI,结果做第一题就卡了,我给转换成个 NPC 问题在那做了一天,自闭了。
晚上打小白月赛,AK 了,但是手速有一些些慢。
看了一些选手的游记,羡慕他们能以如此饱满的感情投入算法竞赛,这也是我所想成为的样子,最后的 14 天能弥补这一直以来的遗憾吗?
Day -28 / 180 / CSP
BOOM 了,T1 想个两个半小时,最后没考虑图不连通,T3 不会,暴力也没写几分,T4 \(k = 2\) 都不会。
Day -29 / 179
上午想出了昨天那个 G,挺简单的。昨天 D 真的是惊喜。
下午和晚上用 AtCoder for Chinese 开了限时训练,然而做题还是没啥状态。
本来周五应该上强度,但是考虑到明天 CSP,就胡乱跑了个四分钟的一千米就打排球去了。其实就是不想跑了。 今天大胆了些,主动体验了一下前排,以及第一次真的拦网成功,对面选手说我跳得好高。顿时感觉不这么难,我打球还是有一些优势的。其实这两天做的 OI 也没有这么难,我是可以做上 2600 的,自信些,明天打出最好成绩。
想写些赛前碎碎念,但是没什么好念的。
Day -30 / 178
真真是模拟赛越做越差了。今天 T1 一个 div.2 C 难度的题,做了半天搞了个比正解困难的做法过了,但是后面啥也不会,听 psz2007 说了 T2 T3 都不太有思维难度,但是不会。
下午就补了昨天两题,然后看看看看 psz 开发 AFC 比赛功能,所以又又又啥也没干。其实这样的节奏可能还没有 whk 的时候节奏好。魏老师闲话讲了没有 DDL 然后啥也不想干的感觉。我很有这感觉。其实很奇怪,容易证明停课和上 whk 比起来应该是不更劣的,但是状态却差了很多,这个大概也要不断的尝试才能调整过来吧。其实我这样的尝试应该很多了,或许由量变到质变的那一点也近了,得挺住心态不要炸,尽可能地做好。
下午跑步倒很舒服,感觉比以往快很多,而且越跑越快,越跑越有劲,要是 OI 也能这样就好了。翘翘加油。
晚上 SIGMA Cup Round #3 正常了些。
Day -31 / 177
模拟赛越做越差。
T1 是我数论练习赛的 T1 改了改,和磁暴撞点子了,使用了个大常数但不需要 __int128
的做法,然后被卡常了。
T2 很简单,但是我不会。T3 也没有想到那个经典 trick(每次覆盖一条链,删除一些贡献 -> 长链剖分),尽管我见过好多次了。
然后 SIGMA Cup Round #2 又见鬼了,做过的题目不会做,又双叒叕垫底。下午补了个 T2 看了 T3 就写了个没啥意义的 AFC 比赛功能。
Day -32 / 176
早上到了后先开了昨晚剩下的一个 2000,比较顺利地做出来了。然后在做 AGC058B,听侯之讲了他凭借这道题当了整整 12 妙世界冠军的高光时刻,然而想了 40 分钟还是不会。其实想法还是比较简单的,做法是设状态为填到第 \(i\) 个,覆盖到第 \(j\) 个方案数,转移时就枚举新覆盖到哪里,最精彩的地方在于,这样就可以算上覆盖的区间和原先的那个点断开的情况,而这是我被困住的地方。
然后想出了两个题又被一个“纯纯的纯纯”(候嘴语)卡住了,吃饭的时候在路上想了想忽然发现是个把 dp 状态中恰好在边界上转换成在其中的经典 trick 了,于是吃完饭回来秒了。想起上次也被一个类似的题卡过,还好这次做出来了。
下午听了节绝绝子讲课,然后思索了一下如何改进 atcoder for chinese,未果,觉得还是写题有意思,然后开了 ARC140C,结果又双叒叕不会,晚上写了个假做法,然后看题解了。这题其实和早上的那个 agc 有一些神似。这题最精彩的部分是把整个划分成若干个严格套在一起的段。这个应该挺好想的,不应该想不到。
晚上是 SIGMA Cup Round #1。
SIGMA Cup Round #1 垫底了。 /ll
Day -33 / 175
好家伙,楼宝的模拟赛是 CSP2020 模拟赛,第一题是《儒略消消乐》,第二题是《动物园丁》。
开场发现 T1 是大模拟,于是非常头铁地开始写大模拟,写得有一些些慢,写了 6.9k,调到两小时五十九分过了大样例(破三),然后,就真的过了,居然还成为了仅有的两个 A T1 的其中一个。
然后 T2T3 两个题都不会,垫底了。
赛后发现原来 T1 是 THUPC 决赛的题,当时看到大模拟就交给队友去写了,最后没有过,早知道就我写了,不过那个时候可能也写不出。
后面两题都是简单题,T3 是 P6293,容易想到链肯定是由链上最值开头和结尾的,那么把不单调的断开肯定不会更劣,这样就好做了。
下午补了题,在想一个 1800,结果不会,自闭了。
晚上想了个 2000,不会,又想了个 2000,还是不会,看了题解觉得两题其实都是挺妙的,看来 2000 中还存在着许多我需要学习的地方,明天思考密度要大些,争取把状态恢复到比较好的水平。
Day -34 / 174
上午补了昨天的题,调出了前天剩下的那道,然后另外做了个比较水 ARC 的 D。
下午 CF 不会 A,下分。
然后就是啥也没干的一天了。
希望明天状态好些。
Day -35 / 173
完蛋了完蛋了完蛋了,第一题不会做了。想了“一万年” T1,然后不会,去秒杀了一下 T2,回来还是不会,最后想出个搞来搞去的复杂做法过了。
出场一问我是傻逼。已知 \(x + y = a\),我却不知道 \(y = a - x\),而是枚举 \(x, y\) 的范围……
下午调了调昨天没调处的 T4,还是没调出,所以又是啥也没干的下午。但是今天 T3 似乎是个很奇妙的题。
晚上见鬼了见鬼了见鬼了,ABC 只做出三题,好家伙,不停课 perf 2400,停课后只有 890 了是吧。原因大概是太想上 1 Dan 了,但是 D 题题面漏看一个限制,大家都会就我不会很自闭,然后看见 psz2007 过 G 了就去看 G,以为是费用流板子于是写了个假做法然后更加自闭,最后写 E 又写挂。
这个故事告诉我:至少对于我来说,意识的调控作用是巨大的(但是巨大可能指的是下限很低),所以心态一定要好,目标要清晰,脑子要清醒些!不要发电!
明天 Div.1 放松点,不要一场回 CM。
Day -36 / 172
感觉状态越来越差了啊,今天 T2 要两个半小时才写完了。侯嘴旁边老问几个题几个题,他四个题了我才一个题,心态要崩了啊。写完前两道希望后面冲一冲高点的部分分,结果啥也没有冲出来。
中午吃饭的时候听侯之嘴后面两题,T3 是个很神奇的题,T4 好像挺简单的。然后侯之就开始讲他的 AK 故事,我的评价是:确实很 AK。虽然没啥 all in OI 的机会了,但是从算法爱好者的角度看,对我还蛮有启示作用的。
下午不至于啥也没干,但是只补了一个 T3,这个 T3 确实蛮神奇的,这步转换转得很妙,原问题是和树形相关的,而转换后只和链相关,这样就可做很多,而且转换十分简洁。此时此刻,我不经想(响)起了绝绝子(化学老师)的声音:“诶,算法竞赛,真奇妙!啊。” 这个题没有用啥高深知识,题面非常简洁,解法非常简洁,讲给非算法竞赛选手听他们应该也能理解,确实是“很精彩啊”的题。
晚饭时找了个花的学生,问花信息技术讲得怎么样,但他表示他们都不听课,花讲得很无奈(
晚上写 T4 然后遇上了点小问题,转战两只 \(\log\) 结果还是一直调不出,所以等于啥都没干。
Day -37 / 171
没有模拟赛。早上听侯之讲了昨天想了很久的一个 ACAM 上 dp,发现其实挺自然的。然后下午只写一个题,晚上只写一个题,没做什么事情啊。
Day -38 / 170
《二模:乱搞或成最大赢家》
T2 到接近两个小时才写完,做得稍微慢了一些些,不过出考场一问发现一堆非常有水平的选手都没有做出 T2,我震惊了,场上觉得这结论猴嘴肯定一眼秒。
出考场后小插曲:
嘴:T2 怎么做,我写了个假的做法。
我:可以证明,除去 \(a_i = 1\),最多只会有一个加。
嘴:肯定假的吧!
“为什么?”
“一眼假!”
然而随便写个假做法就可以得到 80+,所以做出 T2 一点优势也没有,而且多把 \(a_i > b_i\) 判掉的时候把等于也算上了,挂分。
T3,T4 场上都是写了个暴力。
赛后看来 T3 是应该想到的,因为昨天刚刚做过类似的容斥。其实这题还蛮有意思的,场上确实没有想到这样也可以容斥做:枚举钦定的 1,然后其它东西的答案就是高维前缀和后的结果。以往都是把这个容斥理解成二项式反演的特殊形式,一般用在计数里,这样的应用还是第一次遇到。
Day -39 / 169
好久没有这样换座位的模拟赛了,我愿称之为一模,这样算来,联赛前大概有十五模,大概是最后十五场模拟赛了。
场上感觉是 NOIP2021 复刻了,前两题很快就会了,然后疯狂瞪 T3,结果啥也不会,最后遗憾离场。一个小插曲是,开场默写 .vimrc
,发现那台电脑上不知为啥 F10 是有用的,于是换了 <C-F10>
作为运行的快捷键。
然而出现了亿点点事故,T1 ,没有发现我那样写没有保证字典序最大,于是和一群人一起 f 了,真是未曾设想的“惊喜”。
T3 就很不应该了,就连 45 都没有想到。场上的想法大概是先想了一会儿觉得可以先算钦定几个断点然后再容斥(二项式反演的特殊情况?)求出答案,然后想着 16 肯定是要给枚举钦定方案的。但是发现要保证值域从 \(1\) 开始要连续的,就脑中只有一个状压了,于是走偏。
其实保证连续不需要状压,可以先求的只保证值域的,再通过二项式反演求出刚好是值域从头开始连续的,这样子一步以后钦定断点就可做了,同时也不需要这样枚举断点而是可以通过把序列分段来 dp 了。有几种 dp 是优化不了的,不过有 75 我也知足了。
T4 似乎是个蛮神奇的题,听讲的时候听了两特殊性质就跟丢了,经过转化,那两个特殊性质中这个问题已经挺优美的了,而不是我看到的一团乱糟糟。不过现在太难的题也不想管了。
下午效率非常低啊,经典模拟赛下午啥都没干。(但是完善了 AtCoder for Chinese 插件?去年 twt-werewolf-master 今年换插件了是吧?)