THUSC2021游记
作者:互联网
THUSC2021游记
- 期待已久的THUSC它来了,它带着OIer的期盼来了。
- 作为一个菜逼,高二了还没有1=,这次来THUSC“体验”来了。
- 今年是在学军中学,分成紫金港和西溪两个校区,而PKUSC在余姚。
Day0
- 提前了一天到,早上9:00出发,10:30到了机场,11:30的飞机,然而飞机延误了,直到1:30才终于起飞。。。
- 到了之后吃个晚饭就回酒店摸鱼了(复习什么的不存在的)。
- 酒店很大很舒服,就是费用比较高。
Day1
-
早上9:30才报到,结果发现自己在紫金港校区,暂时并没有试机这个环节。
-
然后摆渡到紫金港校区,才意识到这里距离主考场有40min的车程,四舍五入一下就是作为人下人被发配到了边疆(郊区)。
-
午饭还不错,比jz饭堂好吃一些,管饱,还有饮料水果,好评。
-
之后就去考场了,提前了40min进去,问了问监考人员结果并不会清空,所以这不把模板整上?实际上THU的新版Ubuntu实在是太折磨了。
-
有些恶心的地方,一个是Ctrl+n出来的是新的GEDIT,而Ctrl+t才是新标签页,导致我开了很多次新界面;另一个是任务栏在左边,并且我并没有找到桌面图标,每一次都要把所有界面缩小。。。
-
然后随便打了一个FFT(虽然并没有用),稍微发一会儿呆,比赛就开始了。
-
T1
- n个物品,一个大小m的背包,每一个物品有一个大小 a i a_i ai,每一轮装最多的物品,如果有多种选择物品编号从小到大排字典序最大的那种,问要装多少轮。
- 想了一下分块,然后发现每一次对于当前开头字典序进行二分,然后询问后面前K个数的和,这不就是带修主席树裸题?一看数据50000就直接上了。第一次打带修主席树,代码很短,调一调就用了1h了。
-
T2
- 树上每一个点有一个权值 a i a_i ai,求树上所有路径上的最长上升子序列的最大值。
- 点分治或启发式合并裸题。
-
T3
- 有 n n n个人, m m m道菜,第 i i i个人对于一道菜 j j j有一个喜爱度 a i , j ( ≥ − 1 ) a_{i,j}(\ge-1) ai,j(≥−1),如果 a i , j = − 1 a_{i,j}=-1 ai,j=−1,那么第 j j j道菜出现之后第 i i i个人就会离开,你需要给出一个 m m m道菜的子集,使得没有离开的人对于场面上的菜的喜爱度之和最大,求这个最大值, n ≤ 20 , m ≤ 1 e 6 n\le20,m\le1e6 n≤20,m≤1e6
- 一看就是高维前缀和。求出每一道菜哪些人可以吃,假设集合为 S S S,那么直接将 S S S统计到它的子集即可。考虑高维前缀和,但是当某一个菜取消的时候会减去一些贡献,因此不能直接加,还要减去某道菜的总和,因此多记一下这个总和即可,实际上这个也可以高维前缀和,因此空间 O ( n 2 n ) O(n2^n) O(n2n),时间 O ( n 2 2 n ) O(n^22^n) O(n22n)
-
T4
- 通信括号序, l e n ≤ 69 ∗ 2 len\le 69*2 len≤69∗2
- 前段时间做JOISC研究了两天的通信题,这题就是最简单的通信模型,做过通信的都会吧。只需要从小到大给括号序编码并解码即可。类似线段树二分,只需要记卡特兰数即可。实际上INT_128刚好能够存下。
-
实际上Day1就是4道裸题,并没有什么思维难度。。。
-
然而事情并不妙,我T4最后原本剩下2h去搞的,然后剩下1h去调,一开始用的namespace将过程包了起来,没有测试grader直接交结果CE了,思考了一下才发现using ***无效了,然后将它复制了一份新的文件夹,并把它拆了出来(埋下伏笔)。
-
结果本机上测的都是测试组数小的数据,然而交上去WA了,然后去对拍,结果测试组数很多的时候才炸,然后一直在进行无效的调试,包括但不限于将那个数据单独拉出来,以及转换交互的格式,以及格物致知。
-
然后非常戏剧性的是我在最后5min的时候进行了有效的调试,发现我会在第一次运行的时候跑的卡特兰数,实际上在每一次运行的时候都会跑(没有修改标记数组),结果那个DP就爆了(没有清空)。然后我一看时间只剩下1min了,想都没有想,立马找到第一版的程序将标记打上,但是我并没有注意那个是用namespace的程序,然后紧张的交了3发就回来肉查了。结果快结束的时候一刷新发现CE了,再一看程序发现改错了,立马去改不用namespace的程序,然后尝试去交,结果比赛结束了。。。。。。
-
所以AK没了Orz,我是sb。
-
现在回想就是非常后悔,以后对于一定没有用的程序还是删了为妙,容易干扰自己。。。
-
一出来发现好像AK的人不多?
-
“要是我最后编译过了,那我岂不是不用比明天都有1=?”——flag
-
然后很晚才回去,虽然8:00才吃上饭,但是一点都不饿。
Day2
-
早起,冒雨,打的,乘车,由于某种原因原定8:30开始变成9:00了。
-
光线追踪?看了看pdf,感觉比较简单,一开始还以为要计算几何,结果发现库里什么都有。
-
然后看T1,T2,感觉就是大模拟。
-
然后啊,一打开cpp和一堆执行文件,我人傻了。笑死,完全不会操作。
-
为了完成工程题的目标实现上是一堆include套来套去,里面有详细地注释,还算贴心。
-
然后开始实现T2,一开始不知道指针怎么用。。。然后试了出来。然后不管怎么都是黑图片。。。然后就瞪啊瞪,然后调也没法调是吧。。。也不知道是哪里出了问题,然后从CE开始折磨,然后RE,然后WA,然后就没办法了。。。
-
然后实现T1,把逆程序的fread改成fwrite,然后又是CE,又是RE,RE…RE…RE…一直是段错误,好久之后发现前面没有写wb,好不容易不CE了,结果本地好家伙,连个图片都没有,也没有错误信息,我去翻交互的实现,然后压根就没有搞明白在哪里输出的文件。
-
而且里面还有class,union,pragma…等等骚操作,从来没有用过,也从来不知道怎么用。然而我连fread和fwrite,fopen等等带f的也从来没有用过。。。结果到最后都在纠结C++的一些代码的实现和编译细节,然而并没有在下发的C++ reference中找到,吐了。
-
“我看不懂,但我大受震撼。”
-
喜提0分,回收flag,结果今天果然“没有考”。
-
赛后总结一下这道工业题吧,我对于C++还是不够熟悉,算是比语言把我比下去了吧。不过平心而论,这些东西确实是实现一个简洁的工业代码的最佳手段,只能说是出题人对于不太熟悉这些东西的人不太友好,但本身并没有大问题,但是比起上一次THUWC2020传统方式模拟Cache在一个OIer熟悉的环境下实现,这次将运行环境封装了起来,对于调试和修改非诚不友好,对于我这种没有接触过工程代码的人来说更加不友好。
-
只能说希望以后THUWC/SC能够让选手有更好的调试方法,更加贴近OIer常规的运行方式;也希望看到这篇博客的同学能够多学习一些C++平时用不到的实现方法,不要再以这个有什么用来忽视它们,毕竟C++的路还很长,以后总是要学习的,并且万一阴间出题人将它使用到了grader或你要填的程序中,没有了解就会很痛苦了。
-
不过这也是我OI生涯最后一次THU营了,之后也没有机会体验这种与文件操作与C++斗智斗勇4h最后成功爆零的
有趣经历了。 -
结营在下午,大家吐槽都好踊跃,好像工业题出现了很多奇怪的问题(指选手)。
-
然后煎熬等纸。等到最后也没有。。。。
-
果然还是太菜了吗,空手而归.jpg。
-
学校3个1=,1个2=,不过没有3=,实际上换成优秀和良好两个级别了(听说PKU还有优异、优秀和优良),不过3=其实也没有用。
-
哦对了,最后教练说:“其实你都已经有1=了,这次出来就是历练一下。”
-
果然是一篇游记。
-
然后由于天气飞机取消改明天高铁了,摸鱼时间++。
小结
- 这次比赛我深刻地认识到了我在非传统题上的薄弱,以惨痛的教训深刻体验了工业题的实现,开阔了眼界,也算是一种提升吧,之后对于C++的更加非传统的实现还是要好好学习一下,而不限于交互题。
- 另一方面自然是对强基计划在THU的待遇有了更加详细地了解,也更加憧憬了。
标签:没有,30,C++,RE,THUSC2021,CE,然后,游记 来源: https://blog.csdn.net/qq_43649416/article/details/116914401