zoukankan      html  css  js  c++  java
  • @划水记@ THUWC2020 (?)


    @day -1@

    听闻 THUWC 在 12 月举行的消息,突然就停了大概一周半的课(不过只有下午停课)。
    (知乎提问:如何评价 THUWC2020 在 2019 年的冬天举行)

    感觉之前半周还是校内训练,后面突然就变成了某机构的培训,然后就有点打乱安排了(因为那个培训是全天的,可我们只有下午停课= =)。

    结果临行前突然告诉我带好笔记本电脑,说是去了过后用笔记本考,没有准备机子。
    还说什么这次是非正式的,没有发奖,因为之前已经拿过了(那我去干啥的啊喂= =)。

    然后教练跟我说去锻炼一下自己的考试技巧,看一下如果遇到抉择(写正解还是写暴力)的时候莽一下会得到怎样的结果。
    好吧,就当我去划水的吧= =。

    (其实我连游记也不大想写,不过教练要求我总结,我也没办法= =)

    @day 0@

    一大早起来坐飞机。

    听说北京的气温低到了零下几度,令我这个南方人不禁瑟瑟发抖。
    感觉在飞机上还好,甚至觉得零下几度不过如此,结果刚出机舱门就把围巾裹得更紧了 2333。
    北方的寒冷主要体现在室外,一出门就感觉寒风嗖嗖刮,室内开了暖气所以室内反倒比南方温暖些。
    (我是不是偏题了啊,不对我就是来划水的啊)

    下午没有事情可以干,本来想出去玩结果不让出去。。。只好在宾馆复习之前还没复习完的网络流。
    晚上出去吃晚饭感觉冷风迎面刮是真的令人印象深刻。

    @day 1@

    上午报道领狗牌。找了半天才发现那个正在维护的建筑才是报道的地方。。。
    怎么结果胸牌上还是写的是清华冬令营2019啊。
    竟然还送了一条围巾,早知道我就不带了嘛。。。

    报完到后试机。据说试机题是 THUWC2018 年的原题,没见过,只能尝试现场切了。
    第一题是个水题,排序后前缀和就没了。
    第二题怎么这么像个线段树合并啊,写了一会儿不想写了,弃了弃了。
    第三题好像是个字符串的贪心神题。看了一下已经 10 点了,于是叫醒了隔壁的 zjx 大佬,去楼下找 xmy 大佬一起走了。
    (zjx:你看到那个yl的lk大佬了吗?我:我脸盲,认不出来。zjx:他的体型还是很有辨识度的。)

    中午吃完饭,被告知我们要被迫咕掉合影和开幕式,在宾馆强制休息(不是吧真的要我划水划到底吗= =。。。我还以为可以去听听开幕式的精彩内容诶)。
    不过心态看开了,也无所谓了。这种事情也不是见得少了。

    然后下午开始比赛,我们要比正式选手晚 35 分钟开始比赛,也就是说 8 点比赛才完。。。
    开题先看 T1,挺水的,lower_bound 一下就没了。写了一会就 A 了,大概才过 20 分钟。

    然后开始看 T2,感觉像 lct 动态加边删边维护基环树。感觉挺恶心的,决定先去看看 T3。
    然后看完 T3,花了半天读懂了题,然而只对链的情况(当然还有暴力)有一定想法,完全没啥思路。

    然后就决定写 T2,写正解写到一半写得有点想吐了,然后把正解丢到一遍决定写拼盘暴力。
    (比赛后想想感觉 D1 的策略还是不对。。。听 xmy 说他们考场有人 T2 写了三小时 lct 最后 AC 了来着,而 200 分比我 D1 分数要高 50 多分= =)
    (然而。。。到了 D2 我就觉得或许 D1 的策略也挺好的,如果 D1T2 也像我 D2T2 一样写挂了,估计我 D1 的分数就更不好看了= =)
    (此时或许应该尝试去洗手间呼吸一下新鲜空气?)

    结果拼盘暴力一开始还好,后面几种还是要写树链剖分。写完,交上去,挂了,心态崩了= =。此时大概时间总共过去了一半。
    然后就去肝 T3 去了,尝试从链的情况(只需要考虑每个点前面离它最近的点是否距离 > X)进行拓展,然后失败了。
    想了 40 多分钟只多想出来 X = 1 的情况(只需要考虑每个点的父亲是否存在),突然意识到不对,感觉自己方向应该是错的。最后还是弃了 T3 去搞 T2 了。
    (感觉自己又犯了跟 CSP2019D1T3 一样的毛病。。。没有正确评估一道题的难度结果死陷在一道题里面出不来了。。。)

    首先 T2 修了点小 bug,总算把树的部分分过了。小小地恢复了一点信心。
    然后决定写写 T2 的只有一棵基环树的部分分,然后写完,交上去,又挂了= =。
    调了一会儿不想调了,弃题,去搞 T3。
    (OK第三处策略错误,这个时候要么不去搞基环树的部分分,要么就把那部分的调出来,而前者在当时来看更好一些。不然白搭进去了时间又没有成果)
    (特别是,就是因为这个最后 T3 的链部分分写挂了都没有时间调试,比赛就结束了)

    结果最后 T3 只剩下 8 分= =。
    考完下来就感觉自己果然全程划水= =。

    本来想说晚上去打一下 CF,结果回来就把这事儿忘了。划水划多了记忆都衰退了嘛= =。

    @day 2@

    依然延迟半小时开考。结果咕来咕去咕成了延迟一小时开考。

    开题。看看 T1,一眼就瞄中了 n <= 15。嗯,是状压没错了。感觉像是 O(3^n) 的状压?但是又觉得这样没辙。
    瞟了一眼 T2,发现挺像支配树的。再瞟了一眼 T3,发现 I don't need to think of the peach 题目有点长,果断弃掉回来看 T1。

    从部分分入手。ai = 0 直接状压没问题,ci = 0 时转移时因为有绝对值 |x|,转移时需要考虑 x 的正负。想了想感觉当符号确定后,绝对值要么尽量大,要么尽量小。因此存 4 个状态分别表示 < 0 的 min/max 与 > 0 的 min/max。

    诶诶,好像还有个条件诶。ai, bi, ci 的绝对值 <= 15?这个条件可以用来保证权值范围。除此之外,应该还会有用的吧?不然光是确定权值范围在 __int128 的范围内可以搞得更大吧。
    然后想了想,当某个 dp 绝对值 > 225 时,ci 就对它的正负性无法产生影响了。
    那么 -225 ~ 225 用一个 bool 标记是否能够凑出来,除此之外就用之前想的那 4 个状态转移就可以了吧。反正它也卡不满。

    然后写了一会就过了,发现时间已经过去一小时了,有点慌。

    T2 看起来很像 DAG 上的支配树,看来我不用去回想那奇奇怪怪的求支配树的方法了 2333。
    想了一下感觉可以支配树上线段树合并,再仔细想想发现我可能需要边转成点来做,再想了一会证明了几个细节,于是就开始写了。
    写完过后很自然地过了样例,然后交上去,又又挂了= =。只过了中间 a 是 b 的父亲与 n = m 的两个点。

    调了很久,并没有发现哪里有问题。用相同的思路写了个暴力代替线段树合并,还是没有过第一组部分分。
    再暴力一点,写了一个直接在支配树上打标记然后 dfs 的程序,结果还是没有过。什么嘛= =。。。
    (可能是因为我都是用静态查错的原因?也许那时候应该写个暴力试试对拍)

    看了一下,还剩一个小时半了,控制自己继续调试的欲望强行换到 T3。
    分析了一下冒泡排序的本质,大概就是如果前面有比自己大的,交换到前一个位置;否则交换到第一个比自己大的位置的前面。
    反过来的话,我只需要统计有多少个 i 满足 pi 是前 i 个大的(记作 cnt),并检验最后 k 个是否依次为最大的,第 2 大的,...,第 k 大的即可算出最终答案。
    推了一下如果知道 cnt 就可以 O(1) 算。

    然后写了一个 O(n^2) 的计算 cnt 的程序,发现没有过样例,然后发现我需要特殊讨论已经全部有序的情况,此时它排序过后的结果仍然为自己。
    简单地过了 20 多分吧。链的情况想想应该可以用线段树维护之前第一个比它大的位置,树的话感觉和链差不多,只是需要讨论折线型的路径。
    一想到要讨论,我就想起了昨天 D1T2,然后就开始想吐= =。。。

    然后决定继续划水,硬刚 D2T2,结果比赛结束了也没刚出来= =。

    下午终于可以出去玩了,不过只限制在了校园内玩。
    本来想徒步走一下校园的,结果走一半脚就开始了有点酸,决定去搞一辆共享单车骑一骑(感觉很新奇啊,我们学校周围一辆都没有)。
    好像几年没有骑过自行车了,好几次都差点和别人撞上了www。

    顺便吐槽一下我的垃圾 iPhone。。。突然关机不说,开机过后直接从 50% 的电量降成 10%,而且以我肉眼可见的速度直接降到了 5%。。。
    本来还想边听音乐边骑自行车来着。。。看来是自己想多了啊。。。
    最气的是,当我拿回酒店充电重启后,它竟然跟我说还有 45% 的电???

    @day 2+@

    貌似改名叫 day 3 了?不过我还是取这个名字吧。。。不然容易被误会。

    打开资料一看,嗯?这一次是 cache 专题啊。难不成有卡常题。
    花半小时理解了一下基本概念,然后看了一下材料结构与题目安排,貌似 T1 是独立出来的而且是很恶心的大模拟,T2,T3,T4,T5 是一步步深入的题目,后者依赖于前者的实现。
    果断放弃 T1 去写 T2~T5。

    T2 是个模拟的杂烩,还好每种类型的部分分都有样例可以测。写了写就通过了除最后一个部分分的所有数据,最后一个部分分貌似还没有比较好看的实现方法。
    然后决定先写 T3,然后。。。发现自己还是重构一下 T2 的代码比较好,不然之后的部分分没办法用啊喂。
    把 T2 的代码重构得比较好看过后,发现自己按照它说的流程来好像不大对。再三确认过后我发现自己把 cache 和 cacheline 的概念搞混淆了。。。T2 只有一个 cacheline 所以没有问题,但是 T3 有多个 cacheline。。。
    然后写写写终于过了,然后决定先把最后一个部分分拿了再去写 T4。

    在写 T4 之前瞟了一眼 T5。好像还有一篇附加论文?
    点开一看。woc 怎么都是英文,woc 怎么还有 36 页,再见再见。于是要做的题中划去了 T5 的选项。

    最后写完 T4 还剩 10s,打算不测了,直接交。
    然后交了,然后 CE 了= =。。。

    @day 3@

    带队老师为了以防万一,让早点起来看有没有通知面试的电话打进来。
    结果自然是没有。除了已经得过了以外,毕竟我还在全程划水,这种事情怎么想都是不可能的啊= =。

    下午订的机票,发现自己又不得不咕掉闭营式(woc 这样太划水了点吧。。。)

    回去之后问了问一等约的 xmy 大佬 D1T3 怎么做,他说没有讲题的环节。
    惊了。

    那看来我 D1T3 大概是永远也不知道怎么做了吧= =。。。

    话说今年,如果 D1T3 也是个数据结构题的话,是不是有 4 道数据结构题啊。。。
    当年北大冬令营能出6道概率期望和组合计数,清华冬令营出4道数据结构题有什么问题吗

    @day ?@

    经过 THUWC 过后,我现在看到什么分类大讨论都有点想吐了= =。

  • 相关阅读:
    CSS3—— 2D转换 3D转换 过渡 动画
    CSS3——边框 圆角 背景 渐变 文本效果
    CSS3——表单 计数器 网页布局 应用实例
    CSS3——提示工具 图片廓 图像透明 图像拼接技术 媒体类型 属性选择器
    CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单
    CSS3——分组和嵌套 尺寸 display显示 position定位 overflow float浮动
    CSS3——盒子模型 border(边框) 轮廓(outline)属性 margin外边距 padding填充
    Eclipse连接数据库报错Local variable passwd defined in an enclosing scope must be final or effectively final
    数据库——单表查询
    数据库——添加,修改,删除
  • 原文地址:https://www.cnblogs.com/Tiw-Air-OAO/p/12093523.html
Copyright © 2011-2022 走看看