THUSC2021 自闭记

	今年是菜鸡第一次参加 $thusc$,可以说结果非常的不满意,实力与心态上都有很大问题,希望能借此学到一些东西吧。

Day 0

​ 从镇海坐高铁来到杭州,结果由于带队家长的催促,我们在火车站等了 \(2h\),火车只做了 \(1h\),十分自闭。到了之后得知今年 Day 1 5h 4题,Day 2 4h一道工程题,而且考场电脑是我从没用过的 \(ubuntu\) 系统,感觉会非常自闭。

Day 1

​ 兴冲冲准备去试机,得知我被分到紫金港校区,下午才能试机,然后在国际交流中心看了 \(1.5h\) 的纪录片。。。(当然大部分时间在睡觉)。

​ 下午来到紫金港校区,居然有 \(40\ min\) 的车程,直接导致 \(14:00\) 开始的考试,我们在 \(13:40\) 终于拿到了密码条开始了试机。不过比赛推迟了 \(15\ min\),用这时间打了个 \(NTT\),最后也没用上。

​ 开始看题,本着四题考试必有一道送分题的想法,直接开 \(T1\),一开始想到了贪心选择,但显然不对。随后意识到可以先找出每次搬走的箱子数量,再依次二分每个位置的标号,那么就只需要动态维护标号 \(\ge id\) 的前 \(k\) 小的数的和就行了。这显然是用树套树先转化为 \(\log\) 个标号区间,然后再这 \(\log\) 个区间的权值线段树中同时二分来 \(\mathcal O(\log ^2 n)\) 完成。

​ 但我在考场上石乐志,觉得这玩意可以直接主席树做(?),写完调了半天才发现需要修改一段区间的权值线段树,直接变成 \(\mathcal O(n^2\log n)\) 滚粗了。这时已经过了 \(1h\),我终于意识到要使用树套树,但转化为 \(\log\) 个标号区间,我再次脑抽,只想到了再二分一下第 \(k\) 小的数,然后在这 \(\log\) 个区间中同时判断,于是得到了一个 \(\mathcal O(n\log ^4 n)\) 的做法,笑死,根本过不去。顿时有种此路不通的感觉,赶紧去想后 \(3\) 题。

​ 赶紧去看 \(T2\),首先写了一个最 \(trival\) 的枚举每个点作为根,然后 \(n^2 dp\)。发现枚举根节点可以淀粉质优化,只需要维护以值 \(x\) 作为末尾的上升或下降序列的最大长度即可,分别记为 \(f\)\(g\),那么接下来就是要优化这个 \(dp\)。这个 \(dp\) 显然可以放到线段树上维护,然后每次传递到父亲就是一个单点修改了,然后线段树合并即可。很遗憾, 我在考场上写暴力时,\(g\) 是从儿子向父亲更新,\(f\) 却是从父亲向儿子更新 (\(?\)),然后我就觉得后者根本优化不了,敲了所有子任务滚粗了(\(?\))。

​ 此时已经来到了 \(3h\),我感觉 \(T1\) 想复杂了,想急着回去想 \(T1\),于是 \(T3T4\) 基本没怎么想,简单敲了最简单的几个子任务却滚粗了。事后才发现 \(T3\) 就是一个裸的 \(FWT\) 且比 \(T1T2\) 好写 \(114514\) 倍,震惊我一整年。

​ 最后时刻,我准备打一下 \(T1\) 那个 \(\mathcal O(n\log ^4 n)\) 的做法,因为感觉已经很接近正解,应该可以优化。然后我的垃圾码力问题在这时暴露了出来,直到最后也没能调出这个做法,最终以 \(60+60+40+20\) 的预估分滚出了考场。

​ 出来得知大众分 \(320\)\(T1\) 就是树套树,\(T3\) 是简单题,只能说菜得真实。

Day 2

​ 来到工程赛,开局下发了一大堆 \(sh\)\(h\)\(cpp\) 文件,感觉十分可怕。

​ 本来很有兴趣准备了解一下光线追踪,结果 \(T1\) 就把我搞自闭了。一开始看起来就是直接输出一些·东西,但是给我传了个 \(char\) 指针,这该怎么输出?我首先去找 \(T1\) 中所说了那个参考文件,结果找了半天没找到。找到后一看里面全是看不懂的文件操作,什么 \(fopen\)\(fread\)\(pFile\),完全自闭。幸好我会传统艺能,直接把参考文件复制过来,然后把 \(fread\) 改成 \(fwrite\)\(fgetc\) 改成 \(fputc\) ,写完之后发现完全不会 \(linux\) 操作根本编译不起,我多次提问,用了十多分钟终于过了编译,一举拿到 \(30\) 分(满分 \(40\) 分)。

​ 此时时间已经过去一个多小时,我想赶紧调出来,但是却没有任何头绪(事后发现是要求补 \(ASCII\)\(0\),补成了数字 \(0\))。时间已经不多,只能赶紧去看 \(T2\),发现 \(T2\) 好像是毒瘤计算几何题,我注意到 \(math\) 里面告诉了我这题的做法,那么我就只需要实现求出三角形三点组成的面了,我想了很长时间,突然发现发的头文件里已经给我写好了这些函数,我人傻了。。。然后很快就通过了此题。

​ 再来看 \(T3\) \(T4\),一开始题目描述搞得我一脸懵逼,但研究了 guide 之后发现答案竟然就在下发文件中,时间不多了,赶紧码码码。然而,\(T3\) 正确的做法是找到第一个障碍,看障碍与所求点谁到光源更近,而我却写的是只要有障碍就照不到所求点???然后只能在无限调不出来中结束了考试。

\(Day 2\) 最终只拿到了 \(50\) 分。

总结

本次考试,可以说是暴露出了我很多的问题:

  • D1T1 看到经典的树套树问题,却认为可以用主席树直接完成,这表明我对数据结构的了解不太深刻,容易想当然,先入为主,需要多加练习总结来弥补。
  • D1T2 在父亲向儿子DP 遇到困难时,没有想到过反过来从儿子向父亲递归,这表明我的思维十分僵化,不能灵活的思考问题。
  • 在D1T1 迟迟想不出来后,我的心态出现了问题,以至于无法冷静思考 T3T4,只想着赶紧回去做T1,最终两边都没有取得什么收获。
  • 完全不会文件操作、Linux操作等东西,这主要是由于从来没有见过需要这些东西的题目,经验不足。

题解

https://www.cnblogs.com/tqxboomzero/p/14782301.html

posted @ 2021-05-18 12:05  cjTQX  阅读(170)  评论(1编辑  收藏  举报