目录

2017ACM-ICPC青岛现场赛打铁记

It’s not the end. It’s the start of our journey.

2017 ACM-ICPC青岛站现场赛结束了,青蛙爷爷队以2题的成绩夺得铁牌结束。

https://assets.lxdlam.com/img/1665505214_6c056446.png
成绩

现场快剪视频还是很好看的,可以看看:http://acm.upc.edu.cn/?p=258 链接已失效。

这是一篇简短的游记打铁记。

Day 0

看环境有VSC,狂笑不止,完全就是我的主场哈哈哈哈!!!!

看了会儿线段树和zkw线段树,纠结于到底树状数组什么解决不了,浑浑噩噩度过了一个晚上,想到字符串没看完,一阵叹息。晚上睡得还不错。

Day 1

出发与到达

6:00起,巨困,等到了老哥和学长杀到校门口,我们是第一组到的哈哈。铮哥和董老师一起来的,更加确信早上那个分方向会水的不行。

上车后和老哥聊了一会儿。老哥说:

打铁不亏,铜牌稳赚,银牌血赚,金牌上天。

然后睡了一会儿,但是车上还是不是很舒服,过了一会儿就醒了。

离青岛还有36KM,10010给我发短信欢迎来到青岛。嗯?

司机走了跨海大桥,感叹这桥工程量真大的同时,拍了几张照片,这种景象还是值得一拍。或许我应该找点城市规划之类的书看看?该买《Cities: Skyline》了。

到了UPC,卧槽这学校真大。

报道排队,吃饭排队,进场排队,国际大学生排队大赛?饭质量一般。

开幕式与热身赛

啊,讲话好长啊,鼓掌都鼓累了。

老哥拆题十分稳,然后一分钟过去了。

惊讶的发现只有一套题,惊讶的发现账号密码没了。

然后问了志愿者:是只有一套题,账号密码在袋子里。

老哥尴尬的笑笑,登上了$PC^2$。

AB好水啊,切了。惊讶的发现我们在银牌区间,然后一看隔壁队,卧槽这手速,金牌。老哥嘲讽了我一波。这锅肯定不是我背,有种种原因。

开了一手Code::Blocks,打开编译选项,白屏。

看C,整个区间做异或运算并求排序后前$k$个数之和,开始考虑和异或和异或和的性质,没有。

老哥搞了一波优化,但是明显也是TLE抬走。

然后看对面复旦队,已经开始试评测机了,各种行末空格或者开大数组,感觉是金牌队,仰望大佬.jpg

晚上

笑着跟老哥说“现在能保证上来切两道水题”。

看群,C是01字典树,感叹见识太少。

主办方准备不足,各种问题,尤其是Code::Blocks和Java环境变量。幸好我是VSC+gdb玩家。

睡前打了一手AtCoder Beginner’s Round 077,果然还是切两道水题_(:зゝ∠)_。

第三题有点意思,对A、C两个序列做排序,然后遍历B做二分,少一次排序把复杂度压到$O(n lgn)$。感觉还是不懂优化。

Day 2

早上

又是第一个队起的,早餐不错,但是那个粥坑了我一手。早知道狂喝豆浆。

赶到赛场,还是熟悉的“请各位选手在比赛开始前不要动计算机”。

键盘下压了一张Appendix,老哥一看B,“这个肯定是水题”。

正式赛

发题了,今天我来拆,拆的就比较狂妄,拿出账号密码赶快登$PC^2$,老哥来分题。

我所有题看了一遍,然后看了手E,老哥去看的B。

老哥说这B水题,我读了一下题直接搞,1A。

然后看榜,手速又慢了。

之后各自开了不同的题,我去看了J,老哥看了K。

看榜,I绿了一片。迅速开I,老哥没管我。

一读题,去年C语言应该好好写!!!!!!

打#号打到灵魂出窍,让老哥想想我去做J。

然后老哥和我讨论了半天#,我想了一下难调,改成打空格。

很快调好,1A。

这个时候北化突然搞掉了J。老哥看了一手,指示我这是我的锅。

想了一下题意,应该是后缀数组,然后想起来自己就看了看概念,一点算法没看。

抄了个板子,发现不知道参数该填什么。血崩。

老哥看了一手E,我解释了一手题意,感觉怕是可以做。然后发现做个屁啊。

然后直到比赛结束一直在搞J,被C++这个破玩意儿搞了:

1
2
3
string a = "a", aa = "aa";
cout << ("a" < "aa") << endl; // => 0
cout << (a < aa) << endl; // => 1

我们相信了第一条,结果我带头得出"aaa"字典序最小这种狗币结论。我真想砍死我自己。

注:对于第二行代码,Clang下会提示:

result of comparison against a string literal is unspecified.

试了各种办法,离结束还有45分钟,我观察了一下,取循环节!

然后搞了一波,过了样例。大家对视了一下,交!

WA。

然后我发现一个地方该加一个符号。加!交!

WA。

老哥和我对拍数据,果然出了个问题。我随便糊了一个就交了,WA。

后面发现我xjb糊的,老哥想砍我。

滚榜&闭幕式

出来看了一手,大家都炸了,都在喷。

对面复旦队真的惨,感觉应该是金牌实力,结果跪在了这个J上。

后面知道这个J数据极水,各种$O(n^2)$、$O(n^2logn)$、甚至$O(n^3)$都过了,但是有人后缀数组$O(nlogn)$卡掉了,就搞得成了一道练胆子的题目,敢搞暴力就能A,不敢就再见,还放过去很多莫名做法。据说doc老师尿性就是如此,被各路狂喷。

但是和我没什么关系,菜就是菜,也不敢搞暴力。

后面知道E是Polya计数+大数,离散又白学了!!!!

滚榜小姐姐读队名不懂啊,“WA”读成了“W”“A”而不是“哇”。不过还是挺可爱的~给各路大仙的有趣队名跪了_(:зゝ∠)_。

北化手速金了,要我说凭什么嘲讽人家,本来ACM赛制就是过题+罚时,人家就是手速够了,不行吗?我反正是支持,这个金牌就应该有底气的拿着,这锅再甩也甩不到人家身上。

跟老哥全程重复一句话:“明年我们就在这个上面了”。

吃饭跑路~

Day 2+1

想了很多。是,菜,做题少,队伍配置不均衡。

但是正因为自己菜,自己输了,才知道自己是个什么水平,才知道该干什么。

ACM于我而言可以说是一种梦想,不是功利的说我要拿个牌保研加分,Offer加成。

我想在ACM打出一点成就。

和老哥说好了,今年拼了,明年保铜争银。

下午想了一下,直接买了lrj大佬的两本《算法竞赛入门经典》,准备看爆+刷爆。

弱鸡的第一次ICPC现场赛之旅就这么结束了。弱鸡的ACM-ICPC之旅,现在才步入正轨。