• 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^2log n)) 滚粗了。这时已经过了 (1h),我终于意识到要使用树套树,但转化为 (log) 个标号区间,我再次脑抽,只想到了再二分一下第 (k) 小的数,然后在这 (log) 个区间中同时判断,于是得到了一个 (mathcal O(nlog ^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(nlog ^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

  • 相关阅读:
    SGC强制最低128位加密,公钥支持ECC加密算法的SSL证书
    python学习笔记(一)
    eclipse中启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误
    外键建立失败
    scala函数式编程(一)
    idea环境下建立maven工程并运行scala程序
    scala中option、None、some对象
    Java与mysql数据库编程中遇见“Before start of result set at com.mysql.jdbc.SQLError.createSQLException” 的解决办法
    hive表的存储路径查找以及表的大小
    red hat7 系统可以ping通ip地址但是不能ping通域名
  • 原文地址:https://www.cnblogs.com/tqxboomzero/p/14778439.html
Copyright © 2020-2023  润新知