THUWC2020 自闭记

Day -4 ~ Day 0

封闭颓了一周,学了一下扫描线,AC自动机,线段树优化建图和LCT。其实只是切了一下模板,依旧啥都不会。复习了一下线性基,莫比乌斯反演,FFT/NTT。大概是冲着爆零去的,就当作涨了次见识吧。

Day1

考前的状态还不错。

开题。把三道题都看了一遍。

T1:给定一系列操作,每个操作给一个序列 n n n x x x ,如果 n x n_x nx 大于当前的序列 v v v 对应的 v x v_x vx ,就用 n n n v v v 替代。多次询问,每次给定初始序列 a a a ,求最终的序列。

T2:给定一张有向图,每条边有一个负载。多次询问,每次给定一个起点和步数 s s s ,每次走当前点编号最小的出边。满足以下两情况中的一种时便结束行走:

  1. 已经走了共计 s s s 步。
  2. 该点没有出边。

每走一条边,并将该边负载减少 1 。当减至 0 时便删除该边。

对于每个询问,求行走的终点。

T3:给定一棵树,定义两个点 x , y x,y x,y 在区间 [ l , r ] [l,r] [l,r] k k k 级联通当且仅当存在一个点序列使得其第一个点为 x x x ,最后一个点为 y y y ,每个点编号 ∈ [ l , r ] \in [l,r] [l,r] 且任意相邻两点距离 ≤ k \leq k k 。多次询问,每次给定编号区间 [ l , r ] [l,r] [l,r] ,问该区间内的点组成的 k k k 级连通块个数。

蒙了。。。这都什么啊

开考大概 40 分钟后想出了 T1 的一个复杂度正确的做法。考虑对每个 x x x 分别离线处理其操作,按 n x n_x nx 排序后作为版本,以时间节点为底层建主席树。然后对于每个操作枚举 x x x ,二分查找其对应版本,查询该版本下第一个大于当前时间的时间节点。这样就能知道每个操作必然会被哪个操作覆盖,那么对于每个询问就只需要用同样的方法找它第一次被哪个操作覆盖就好了。

由于数组开不下还特地启用了指针……策略很正确,但被卡常了。pretest 获得 70 分。想到这题大概是签到的,当场心态就崩了。

T2 敲完暴力,本来是可以写“负载极大”和“图是一棵树”的两档部分分的,分别可以用倍增和树剖解决。也不知道怎么的,反正没有写。大概是对自己能不能调出来没有自信。

T3 printf("1")滚粗。

D1 (30 ~ 100)+16+4=(50 ~ 120)。

出来发现全世界都 A 了 T1,果然我连签到题都不会。 Mr \text{Mr} Mr_ Wu \text{Wu} Wu T2 混到了 50 分左右,将我吊打。旁边的 传奇666666 也比我 NB 不少。

Day2

早上有点自闭,开考前抓紧一切时间睡觉。。。睡了好久

开题。又都看了一遍。

T1:给定 x x x 和多个形如 f ( x ) = a ∣ x ∣ + b x + c f(x)=a|x|+bx+c f(x)=ax+bx+c 的函数,安排一个顺序使得按顺序执行函数最后得到的结果最大。

T2:给定一个 DAG 和它的一棵生成树,多次询问,每次求删掉一条深度严格递增的路径上的所有边后深度较深的点的子树中有多少个点从根出发无法到达。

T3:给定一棵带点权的树,其点权为一个排列。多次询问,每次给定一条路径和 k k k ,问有多少个排列经过 k k k 次冒泡遍历后恰好变为当前路径上的点权依次组成的排列。

抱着必须要 A 题的决心去爆写 T1 。最终想了各种奇技淫巧,写了300行,用三套不同的状压dp过掉了所有种类的部分分,但发现不能推广到正解,55分滚粗。

T2 和 T3 都混了纯暴力分: 31+5 。

D2 55+31+5=91。

出来又发现全世界都 A 了 T1, Mr \text{Mr} Mr_ Wu \text{Wu} Wu 和 传奇666666 都说把一个部分分的解法交上去就能 A 掉???我裂开了

Day2+

晚上的大码农题是手写一个缓存 cache。给了一个臭长的文件材料(大概16页的一个pdf),全在解释概念。

分了五道题,分别是

  1. 模拟多核处理器下 cache 的 MEIS 协议
  2. 手动实现 cache 的替换算法,共 7 种,分别为 N/A, Random, FIFO, LFS, LRS, MRS, PLRS。
  3. 实现一个 Read-only 的 cache。
  4. 实现一个 Read-Write 的 cache。
  5. 实现 cache 的 LIRS 替换算法。(附带参考文献)

出来以后讨论,觉得读题目材料大概要花 40min ~ 1h 50min 不等。

考场花了大概 1h 读材料,然后写 T1。结果线程上 BusRd 和 BusRdX 操作没有看清题意,遇到一个 M/E/S 当场就跳出了,殊不知是要遍历完整个 cache 块的qwq,导致 40->10

然后写 T2,PLRS没写,LFS没看懂导致丢了 8 分,事后才发现是给了LFS的样例的,我为什么不看着样例调呢???最终获得 32 分。

接着看 T3,爆写一大通大概400行,最后一交 CE。

然后就交卷了。3h 真是短暂啊。

D2+ 10+32+0+0+0=42。

总分 (50 ~ 120)+91+42=(183 ~ 253)。

总结

大概我从来就不会打暴力吧。

大概我所谓的“思维优势”从来就不存在吧。

CCF 在 CSP day2 给我放了一把水让我侥幸存活,可 THUWC 的每一场比赛都是场硬仗。不会做,就是活不下去。

以后要多努力了。期待明年再次相约清华园。

蒟蒻先滚一步。

你可能感兴趣的:(OI,游记)