THUWC2019 游记
坑先占着QwQ
不太喜欢写Blog, 因此我的Blog一直很冷清,但是还是想写写这种游记啦,反正是给自己看的
Day -4
颓了一整天,一道题都没写
于是无聊用GL写了一个海战游戏,让两个程序对打……
Day -3
颓,没做题
Day -2
颓,没做题
Day -1
颓,回家泼隔膜
Day 0
出发辣
飞机上很无聊
到了广州真的很热
于是挤了好久的地铁,全是人……快自闭了……
于是……走下地铁……
还走了半小时的路……
走了半小时的路到宾馆
结果……家长们还走了好久才到……
然后还被强行带出去吃饭
晚上泼osu!
睡觉前各种担心
Day1爆炸预定
Day1
上午报道,选了一件蓝色的衣服,看样子还不错
来到考场试机,OJ各种挂……
坐在C区的边上,键盘好评
敲了一个NTT然后就走了,去吃饭,饭还不错
合照完,就奔赴沙场
一路上头都是昏的,走进考场发现不能登录,显示"System Locked",于是举手一波……
还是坐在C区的边上,键盘好评
离考试还有十几分钟,马上开始睡觉
然后剩下几分钟的时候起来,成功输错账户名和密码
考试开始后纸质的题面一看,三道传统
看一遍题面
T1看样子可做,T2码农,T3DP
于是开始做T1,发现枚举一波贡献,就是\(\sum cnt_a[i] \times cnt_b[i]\)
还是直接上分块吧,空间256MB的毒瘤,把块设成300个,样例WA……
发现数据大的时候,把块改大改小结果不一样,然而并不是越界
于是打一发暴力开始拍,发现极小的数据就WA了……
调过后交一发,最后一个点T了,算一下\(O(Q\sqrt n)\)已经爆炸了,放弃了,\(80\)分走人
T2看样子难做,先做T3
T3下面的容斥一直搞不懂,所以直接写DFS,结果T……换一个姿势,还是T……那我就搞不懂了
于是去刚T2,发现其实还可以
考虑只有车的时候,最多两个折
考虑飞机,要么平行线上有两个飞机,要么一个点有飞机
于是记录最大最小值就可以过60了,感到如果还要最小值那就真的难写了
爆了几发OJ没过,没有飞机的点过了
发现飞机少考虑了
于是又爆上去
还是WA,只过了小的点
看了好久,发现数组开小……
\(60pts\)走人
中途还心态崩了,上了一波厕所,心里平静了许多,调出了T2
T3换了各种各样的DP,结果都fake……
看着最后半小时在我想DP的过程中没掉,然而还是一分都没得
Day1 \(80 + 60 + 0 = 140\) 滚粗
顺便说一句士力架真好吃,那个蛋糕差评,两个口子扯下来还是没撕开……
旁边那个小哥无限续水喝令人震惊
出来后,发现被踩爆了
yu大T1T3A了,T2没拿满
后来,才发现T1有莫队做法……以及T3可以用map套vector拿十分
回去后,仍然泼osu!
Day1果然是Day1,果然爆炸了
听到教练们奶一口Day2更难
Day2
这一天注定是一场考验——因为有8个小时……
还是坐在C区的边上,键盘好评
照常考前睡觉
今天T1T3传统T2交互
看了T1,SB题,T2看样子有点难,T3貌似可做
于是就刚T1,枚举边的贡献,就是一个线段树合并,但是要up和down一下,可是这个down是可以用所有的减去up做到……
马上写上,50min一发pp
发现还行,心态好了起来
去刚T3,写了一个暴力凸包,一遍过暴力的pretest
然后刚T2,写了枚举所有边
发现才两个小时不到
不能\(100 + 30 +34 = 164\)滚粗吧,人毕竟要有梦想
去想T3的部分分,发现有两个方案:
- 枚举左下角点,三个数组开上DP一下,四个n
- 枚举三角形,枚举贡献,双指针扫一下,三个n,但是有点fake
所以写了第一种,一下子过了样例,一交,全WA……
拍了一下,发现只有一种情况没考虑:最后时候的边和左下角点共线
改一发就pp了,\(74pts\)
现在\(204pts\)了,时间不多,去想T2
试了各种方法,感觉不太对
先是用并查集优化了一波,发现并没什么用
后来想先定一个根,先feature1预处理深度,按深度枚举下去,然后枚举每个点的父亲是谁,这样是\(O(n^2)\)的,常数应该小一点,但是交一发,没多过东西
感到应该考虑feature2怎么用
如何\(O(1)\)求出父亲?
不就把上一层的所有点\(|S|\)和那个点放入集合然后feature2不就好了
于是写了,WA,原来传回了0号点
突然看到样例里的一个集合是多重集合……
然后就想到,不如把要求的那个点多复制几遍?
这时一看还剩半小时,决定开始码
我根据直觉直接把询问点复制了\(|S|\)遍,调了几发,过了样例
然后改成\(|S| + 1\)就不行了233
交了一发PP
\(100 +70 +74 = 244\)还行
于是最后15分钟都在颓
威化饼干真好吃 士力架真好吃 好评
出来之后,发现还是被踩爆了
yu大\(100 + 51 +100 = 251\)
下午回去颓颓颓
在宾馆里看西游记(今……),被教练查房D了一顿
然后就假装睡觉,实际上在颓知乎
晚饭点了外卖真好吃
Day2+
考前开玩笑说考图形渲染
还是坐在C区的边上,键盘好评
照例考前睡觉
然而还是没奶中啊,考的是图像处理
一看,MD这什么°6题,这能做的?
于是打开题目,快速跳学习手册
发现ADLER32是送分的,写了一个,过了样例,交
然后写CRC32,这什么东西啊……到底用什么实现啊…………
只好暴力bitset,跑了好几秒才跑完
于是看第三个点,发现其实手册里全是重点……各种IDAT什么的smg
还是慢慢啃下来,一个个实现吧
我先封装了读入,然后从头到尾打下来,发现T3和T4貌似有关联,反正也不管,直接在T3把东西都判了,assert上去
发现其实还挺好打的,就是这文章挺长……看下来其实发现都还好
打着打着发现竟然要CRC32……因为会跑的很慢还是回去优化了一波第二个点,然后封装起来调用
调了一下,然后IHDR的CRC32过了!
开始写IDAT,发现很麻烦
数据块的大小应该是9啊,为什么是10啊
这个ADLER32到底作用域是多少啊
观察了好久,发现这个多出来的1是在数据流的最前面有一个00……也没看到它讲为什么啊
然后写完读取后,能够成功输出RGB矩阵了
但是ADLER32还是过不了啊……
各种调,调不出
结果看我的ADLER32源代码的时候,发现\(65521\)写成\(65531\)
差点\(80pts\)滚粗
改了一发,重新交了T1
然后再改了一波作用域,ADLER32校验过了,它说的数据流就是只有那种\((3 * W + 1) \times H\)个的
样例过了,然后发现无限空间开小……
交了上去,然后马上改T4,改了一下,发现数组还是开小了……
看到输出的图片时十分激动,看看时间,还不多了……
马上往下翻,看起来sobel挺好写
把T3T4封装起来后,写了一发,样例跑出半个图
我立马就慌了,一看,\(W\)写成了\(H\)
然后就渲染出来了
于是开始跑,数组又是各种开小
搞出来后,交上去,时间也只有十几分钟了
把每道题检查一遍,发现不少答案锅了!
有的5个点只剩4个,有的编号甚至比测试点个数还大
5个点都补交了一发,检查了一遍又一遍
最后四个库放在一起,一共5个K,看着边缘检测的图,十分有成就感
Day2+预估\(20 + 30 + 50 + 50 + 20 = 170\)滚粗
然而晚上没吃的只有水……
出来后发现仍然改不了被踩爆的命运
yu大\(20 + 30 + 50 + 50 + 20 + 20 = 190\)踩爆我
晚上回去还是泼osu!
想和zzs开CS:GO然而没开起来
Day3
面试差点迟到……在等候室里等了两个多小时
听dwt说去年是三个老师正襟危坐对着你
我进去一看,还真是……
其他还行,英语直接爆炸
下午听着讲课,发签无限咕咕
然后听说今年变成发奖了
听说神仙weng_weijie在PKUWC拿了一类
开始无限orz
终于在很晚的时候开始发
快到了最后,我才上去开彩票
开到的奖还行,大概是照顾我这个初三的吧……
晚上和zzs开CS1.6,欢乐场,无限ping
今晚还是很容易就睡着了
没有提前退役,也算是一种运气吧,看着个个初一初二的比当时的我强多了,感觉不久就要被踩爆了
滚回去上文化课辣~~~
然而ZJOI这种不可能的东西,还是要去冲一下,人也是要有梦想的
后记,ZJOI 真的人没了。
后记,自招也没了。