• 【游记】哭笑不得的 GDOI2022 游记


    哭笑不得的 GDOI2022 游记

    之后会补上 GDOI2022 PJ 的题解。

    Upd: Solution

    Day -?

    本来是要参加省选的,但是出了一点小插曲。

    由于疫情防控要求,我们这些初三的参加不了省选了,只好参加 GDOI2022 普及组线上赛来代替。。

    而且更离谱的是这个通知一下达我们就立马滚回家上网课了(

    “听说你们停课了?”

    “是的,停了几个月。”

    “考得怎么样?”

    “打了场普及组线上赛。”

    教练很诚恳地说非常对不起,我也很理解,但是心里莫名感觉难受。怎么说呢,疫情这也是没办法。。

    奥*克戎什么时候*啊

    Day 0

    装好了需要的录屏软件,下载了题目压缩包,搞好了编程环境。

    准备明天开考。

    Day 1

    早餐时喝了一大杯牛奶,感觉不妙。

    8:10 开始录屏,过了一会发现录屏质量是最高,于是赶紧调到了最低重新录。此时是 8:16 问题应该不大(

    8:25 发放压缩包密码,\(\texttt{"Hope!To@See#You\$Soon"}\),这是要干嘛啊。

    8:30 考试开始。Day1 有四道题:邹忌讽齐王纳谏、数列游戏、流水线、小学生计数题。

    看看第一题,简单模拟,\(5min\) 写完。

    看看第二题,求完异或前缀和之后操作转化为删除一个数,所以答案显然,\(5min\) 写完。

    看看第三题,一时间不知道怎么做。想过二分,但是好像不好 check(其实二分可做,同学写的是二分)。

    中间去看了一下 T4,结果没什么思路。

    然后开始考虑枚举最大值,然后发现贪心加点是正确的,然后用 std::set 维护一些东西。码代码+调试花了大概 \(20min\),然后过了样例。第三题花了 \(40min\) 左右。

    看看第四题,仔细思考后发现枚举倍数分别计算很有前途。然后想了想,考虑排序后等差数列一定连续,所以要算的就是长度 \(L\le len\le R\) 的区间的乘积和。这个很好搞,花了 \(30min\) 写完调完。

    回头看了看 T3,发现了 \(w_u\le w_{fa_u}\) 的性质。这样一来我的做法更对了。于是改了改代码,代码更精简了。

    此时比赛开始大约 \(1.5h\)

    然后写了一下 T3 和 T4 的 \(O(2^n)\) 暴力对拍(我有什么办法,我只会最暴力的暴力和正解()。所幸没有发生什么大问题,改了几个小错之后就过了。

    此时比赛开始大约 \(2h\)

    好像 AK 了,十分感动。

    此时那一大杯牛奶开始发挥作用了,我剩下的时间里一直想上厕所,但是不知道允不允许就憋着了(

    比赛开始后 \(3h\) 发现 T2 忘记判断无解了 qwq,于是思考了一下后发现无解 \(\Leftrightarrow\) 异或和为 \(0\)

    终于憋到了 12:00,比赛结束。估分 \(100+100+100+100=400\)

    Day 1.5

    考后和同学交流,发现大家似乎普遍 AK 啊(

    有的同学录屏估计没有调画质,导致文件太大传不了邮箱(

    还有同学 T2 的无解判错了,判成了答案为 0 时无解,我发现我居然也曾经以为过是这样的,好险。

    大家 T3 似乎都用二分做的。找了一个人对拍 T3,结果一拍就挂。仔细排查后发现数据不合法,存在 \(w_u>w_{fa_u}\)。(二分做法不必考虑这个限制)

    有个同学说 T4 写了 \(O(n\sqrt n)\) 枚举因数,然后被卡常。我也不知道说什么好。

    此时的我还没有发现一个严重的问题,不过话分两头,我们先讲 Day2

    Day2

    不吸取前一天的教训,又喝了一大杯牛奶。

    密码是 \(\texttt{alwayS*weaR*A*masK}\)(中间特殊符号忘了,也没记下来),好家伙,末字母大写。

    (两天密码大概是说如果不带好口罩就要在方舱见到你了?????)

    Day2 有四道题:点指兵兵、网页浏览、教室的电子钟、机器人。

    看看第一题,发现 Day2 比 Day1 难很多,不过 T1 还是蛮简单的。转化一下变成枚举因数,可以根号做。T1 耗时达到了 \(30min\)

    看看第二题,没什么思路。思考一会后推出了一个结论,然后写了一个迷惑做法,耗时 \(30min\)

    看看第三题,他奶奶的,是一道大模拟,还是日历题。

    int main()
    {
    	//年轻人不讲武德,出大模拟,偷袭!
    	return 0;
    }
    

    看看第四题,好像比较可做。先想到了一个暴力加 bitset 优化,码完调完后发现大数据一个点就要跑 \(10s\)……很没前途。于是开始想别的办法。

    此时那杯牛奶开始发作了,极大影响了我之后的发挥(

    没什么思路,于是回头看了看 T2。看了看样例解释,略加思考后发现以前的结论是错的。然后我写了一个 DP,过了样例,又手玩几个之后发现没问题,应该对了。

    不想开 T3,回头看 T4。我灵光一闪:如果正着枚举字符串 DP 不可做,我就反着来,让每个位置去匹配字符串啊!好!非常有前途,大概需要一个子序列自动机维护一下广搜就行了。

    花了 \(30min\) 左右码完,调了一会过了样例。然后和原来的暴力对拍,发现挂了。调了 \(30min\) 才发现一个点可能多次入队,于是把广搜改成类 SPFA 的东西就可以了。但是复杂度暂时不知道多少。

    此时比赛还剩大约 \(50min\)。我看了一下 T3 的暴力,发现枚举秒可以拿 \(70pts\) 的好成绩。于是开始码。大概花了 \(20min\) 码完。然后测了几个小数据,应该没问题。

    看来 Day2 还是比 Day1 困难,不过这也有喝牛奶的原因在(

    估分 \(100+100+70+100=370\)

    Day 2.5

    和同学探讨,发现为什么那么多人都写了 T3 这个鬼东西啊 qAq。

    然后有一个人发现忘删调试代码了。。默哀。

    得知 T2 的结论是节点数+叶子数,发现和我的 DP 本质一样,放心了。

    接着一个样例让所有写了 T3 正解的人都挂了。。但我的暴力存活了下来(

    而挂掉 T3 的人好像都没时间做 T4 了……

    所以说,写大模拟得不偿失。

    Day 2.51

    Day1 成绩早出了,所以去查了一下。

    书接上文,这一查不要紧,我发现了一个问题:

    这是正确的 freopen

    freopen("zouji.out","w",stdout);
    

    这是我写的 freopen

    freopen("zouji.out","W",stdout);
    

    好家伙,直接文件输出了个寂寞。

    还好,这东西没有大毛病,只不过四个代码都是这么写的,也没有大影响,只不过我 Day1 保龄了。

    蚌埠住了.jpg

    晚上查了一下 Day2 的成绩,还好,没大问题,和估分相差不多,\(100+100+70+90=360\)

    然后同学们 Day2 挂得挺惨烈,最惨的只剩 \(100pts\)

    总结

    其实总体来说,考得相当不错,除去不可抗力因素,我有 \(750pts\) 左右的好成绩,足以在全省位列前茅。

    但是小写写成大写这种东西。。我也无法总结是因为什么。

  • 相关阅读:
    你加班太多是因为你的代码写的烂
    构建知识图谱,让自己更值钱
    程序员的年终总结该怎么写?
    一本开源的程序员快速成长秘笈
    vue项目框架搭建
    mysql的那点事儿,你知道吗
    idea快速返回上次代码查看的位置
    ajax、axios和fetch的区别
    java8 stream的用法总结
    正则表达式
  • 原文地址:https://www.cnblogs.com/ExplodingKonjac/p/16166515.html
Copyright © 2020-2023  润新知