APIO 2023 游记
Posted do_while_true
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APIO 2023 游记相关的知识,希望对你有一定的参考价值。
5.18(day 0)
下午去 wghyt 房间打牌。wghyt 房间怎么这么豪华,外面有客厅,内外两个卫生间,甚至还有冰柜。我的房间就只是普通单间,流泪了。
学会了打诈牌。诈牌的规则是,每个人手里有若干张牌,一个人可以打出 \\(n\\) 张牌(背面朝上),并声称其为 \\(n\\) 张 \\(k\\),接着不断下家跟出(也可以跳过),可以打出 \\(n\'\\) 张 \\(k\\)(给出的点数必须相同,张数不必相同)。
一个人打出牌之后,场上任意一个人都可以质疑它的牌,如果说谎了那么质疑成功,否则质疑失败(相应地,打出牌的人会失败 / 成功)。在这次质疑中,被质疑的手牌将会公开给所有人,然后失败的人收走桌上所有的手牌,胜利的人作为先手出牌。
两张王是通配符,可以当任何牌用。如果一圈下来都跳过了,那么上一个打出手牌的人可以重新作为先手出牌。
先出完所有牌的人赢。
晚上和 ymh 愉快聊天,被安利了言和。
半夜醒了睡不着,去厕所睡的。
5.19(day 1)
字符串,csy 讲课听不大懂,xtq 的倒是听懂了不少。基本子串结构的题还想出了一道,我直接莽上去从 qq 私聊 xtq 报了做法,然后 xtq 就“已经有同学想到做法了啊”(不过实际上还是差了一点,不用矩形 min,区间 min 就够了)
xtq 讲完那个题我还是有一点没听懂,于是在 qq 问了 xtq,xtq 也好心直接在台上讲了一遍为什么。好评好评好评!
day 1 下午《如何写一个解释器》,本来想 vp 一把比赛的,睡醒一看群怎么还要签到【差不多得了】于是润去和群友在最后排打 uno 摸鱼。
晚上继续诈牌,后来他们打三国杀,我就尝试写 EA 的计树题 的 \\(\\mathcalO(\\log n)\\) 矩阵快速幂做法,薄纱题解好吧。那么这个薄纱题解的做法是怎么做的呢?
其实也不难,前面用 gf 技巧得容斥系数的技巧见过就能想到,现在我们知道如果令一个长度为 \\(i\\) 的连续段权值为 \\(in[z^i]\\fracz^21-z+z^2\\),一个连续段权值的 ogf 是 \\(F\\),那么答案的 ogf 就是 \\(\\frac11-F\\),多项式求逆就 \\(\\mathcalO(n\\log n)\\).青蛙看得很本质,说 @&#DS*&DGYASU(@ 然后就是一个线性递推,BM 求出递推式之后就能 \\(\\mathcalO(\\log n)\\) 了。
去一边去!先看看 \\(\\fracz^21-z+z^2\\) 展开,发现形式很好看,就是 \\(\\0,0,1,1,0,-1,-1,0,1,1,0,-1,-1,\\cdots\\\\),后面就是 \\(\\0,1,1,0,-1,-1\\\\) 的循环了。也就是只有 \\(len\\bmod 3=0,2\\) 的连续段有权值,并且按照 \\(\\lfloor\\fraclen3\\rfloor\\) 的奇偶性分类。这样我们就能通过记录模 \\(3\\) 为 \\(0,1,2\\) 处的位置的一个前缀和状物(每长度为 \\(3\\) 分组,按照奇偶决定对前缀和贡献为正还是负)就能 \\(\\mathcalO(n)\\) 递推出来了。
这玩意能矩阵快速幂,但是信息数还是太多了,大概还需要一组一组转移。其实递推 \\(f_i\\) 可以直接考虑 \\(i\\) 所在连续段长度,\\(\\leq 6\\) 的直接转,\\(>6\\) 的让它从 \\((i-6)\\) 那个位置续上。由于权值中需要乘个 \\(len\\),所以续上的时候要多记一个 \\(g\\) 表示只有最后一段没有乘 \\(len\\) 的答案是多少。现在就只需要记 \\([i-6,i-1]\\) 的所有 \\(f,g\\),信息数是 \\(12\\),先把前 \\(6\\) 个位置递推出来,再矩阵快速幂就 \\(\\mathcalO(\\log n)\\) 复杂度了。
实际上递推式还能更短,跑 BM 对着系数找规律应该能找出来,但我懒了(其实就是不会 BM)。
晚上睡觉蹭的牛爷爷屋睡的。
5.20(day 2)
比赛日。写了 #IUH(#Q*^)UH#$@AD) 然后发现没时间写 T3 的暴力了,咋又被造计算机干碎了。T2 也有的分不应该没拿到,ds 水平肉眼可见得弱。扔给一两年前的我或许还能打满暴力,现在的我 ds 水平日益下降,也不敢声称 “我 ds 是强项” 了。
其实还是这一年多来 ds 练少了的原因,NOIP 前一直就练 NOIP 内容,NOIP 后又太摆了,再怎么熟练的做题技巧,在时间的冲刷下终会淡薄。不能因为觉得自己很会就停滞了训练,也不能被大纲限制得太严重了。如果天天想着《这个不在大纲里不可能考》,《这个这么难,比赛遇到也不是区分省队的题》这样自我安慰的话语,反而失去了挑战难题的斗志,失去了钻研学问的精神动力。
更外显一点的,我口胡题目如果遇到对做法还不是很清晰 / 对代码实现还有点疑问的时候,并不想也并不会去写一遍代码,心太浮躁了,思路没有落地。数一数我做过的思维很深的难题,并没有几道。
再往前一点,去年学 NOI Linux 的时候学开栈怎么用,知道了 ulimit -s unlimited
能开栈,如果我再去了解一下 ulimit
具体能干什么,知道了 ulimit -v
这个东西,并且在考场上用了,也就能避免 D1T1 deque MLE 的惨案。
避免浅尝辄止,思考要深度。
下午打完比赛和 ymh 小怪兽 yx 四人打诈牌,大概研究了这几种打法:
首先是小技巧:
- 记牌,这个比较基础但是也比较难,我会记王在哪里,虽然质疑之后只会把最后出的人手牌公示而不公示前面的,但毕竟线下游戏也避免不了一些场外信息,通过记牌简单推理出谁打出什么样的牌一定是说谎也是有用的。
- 如果策略是需要抢先手的,那么拿四张不亏,这个后面解释策略会说。
然后是几种打法策略:
- 一般不抢先手,如果场上有自己手里的牌就跟出。这样打的好处是别人不敢质疑你出的牌,所以也可以说谎把憋在自己手里的牌打出去。
- 先乱打乱翻(当然还是带点脑子比较好),拿四张相同点数不亏,把两个王转自己手里,这个时候别人不知道你手里两张王。然后就等天时地利人和,当然也需要一定的观察能力抢到先手,不断砸四张相同点数的牌(这个时候质疑你肯定失败,不质疑你你又可以继续砸)把所有牌一次性砸完。
- 如果手里有多张点数相同的牌(三张 3,四张 4 这样的),不断单出这个点数,这里面可以混出出现次数少的牌,从而达到手牌提纯的效果,这个也能配合打法 2.
破解打法 2 的情况,分两种:
- 开始扔四张点数相同的牌,但是手里没有王。这个时候其他人可以用自己手里的王通过说真话截胡。
- 有砸四张点数相同的牌就质疑。质疑失败了手里拿四张相同是不亏的(除非你是打法 1 不需要先手出牌让自己赢的策略),而质疑成功了能够防止对方虚张声势把杂牌混出去,也能截胡对面。
打法二在人数少的情况很奏效,我试了几把基本上都是头科或者二科,但是后来 ymh 想出来打法三,被打法三打爆了(不过也是我眼力有点差,看不明白是不是在说谎)。
晚上狠狠开趴,宵夜点了烧烤不过很少,一会儿就炫完了。充当背景的电视挑选了个播放熊出没的台,乐。峰拿小怪兽的平板打人机输了一晚难蚌。
玩到很晚,最后和小怪兽在 wghyt 房间客厅睡沙发。
5.21(day 3)
六点半睁眼,发现小怪兽在打农,困得要死又睡到七点,醒来一看小怪兽还在打农,有点吓人,发现他精力十分旺盛。
前一晚嗨到很晚,但是上午特别精神,可能是上午的课是生成函数与计数的原因!不过讲的题也不是特别难?但还是见到了一些没见过的 trick,cftm 还在底下爆了两个题的标算,非常恐怖啊!最后剩一道题,磨不动 2h,于是开始了 45min 的补前面题的时间/kx 看了一下最后的思考题,发现就是前一天早上问峰的容斥手法,于是果断开始摸鱼。最后讲师在上面手摸了 1h 容斥系数,也没听明白到底讲了个啥,感觉不如直接听群友线下传授/kx
中午去 wghyt 房间点外卖,没吃食堂,但还是回房间睡了会儿觉,没办法,不睡午觉下午不精神(虽然下午还是中途小憩了一会儿)。下午 ucup 杂题选讲倒是挺中规中矩的。
晚上闭幕式,文艺汇演《never gonna give you up》和最后的舞蹈《听我说谢谢你》节目效果爆炸,舞蹈甚至还是全明星阵容。发奖斩获第数不清楚的多少枚铜牌,这下比力扣阶级更下一层楼了。
闭幕式结束后本来还想继续 wghyt 房间开趴,但是被一群外邦人占领了,没兴趣去,就和小怪兽 clf 在 cftm 房间玩,学会了打红心大战。红心大战规则懒得写了,总结了一下几局下来我摸索出来的打法:
- 换牌,给出去的大的优先。黑桃 Q 罚分太重了,首先把黑桃的大牌给换出去保证自己别吃黑桃 Q,然后换出去红桃的大牌。如果有的花色牌数特别少也可以考虑把这个花色顺出去,这样自己就能通过这个花色顺出去一些大牌了。
- 狙人,这个可能比较吃运气。可以把黑桃 Q 攥自己手里,然后尝试把黑桃 Q 狙给场上罚分最少的。也有黑桃 Q 烂自己手里罚分的风险,拿红桃狙人也不错。反正就控制比分,让罚分少的多罚一点。
后来 clf 走了,三个人打斗地主。我觉得我斗地主还是有一点水平的!大概能记住 / 推理出 2 和 A 的拥有情况,比方说有人抢地主,底牌有个 2,那么这个人大概率是三个 2(手里只有一个 2 可能求稳不抢地主,但可能对一些打法比较激进的人无效)
和小怪兽拼了 coco(结果 5.22 在济南蹭了峰一个蜜雪冰城发现配料一样的果茶蜜雪冰城价格是一半),小怪兽还点了炸鸡,三个人炫,爽!
晚上去小怪兽房间睡的,他跟我说晚安喵诶!
游记CTSC&APIO2017
GDOI回来不到两天就前往北京参加CTSC和APIO。
CTSC Day1
【考试】
T1一道神奇的题,很快想到O(n2)做法,感觉ctsc题目难度应该很大,就没马上想着出正解(事实上这届CTSC偏水…233)
T2给带边权树加一条指定边权边,使最大的两点间最短路最小。虽然是最大值最小问题但是考虑了几次二分都不靠谱……考虑枚举环暴力判断O(n4)但是程序好像相当难写……好像要链剖树型DP总之各种复杂。
T3看到概率两字就没往下看了……这是我这场比赛最痛心的地方!
回去考虑T1,画出表来想了很久发现考虑每块石子都会有重复的,只要有一个变量记录差值就行了,这样就O(n)了。然而代码比较复杂码了很久。
搞定T1后只剩一个半小时了,心想写写T2暴力大概是够的(flag)。然后考虑T2细节发现巨多!然后开始码码码到最后20min还没码完而且感觉我码不下去了……太恐怖了……然后二三题0分跑路。
想想当时我居然到最后都没有完整地浏览T3的题面……
【成绩】
实际得分(期望得分):90(100)+0(25)+0(50)=90(175)
【讲评】
T1大水题,大家都很快地签到QAQ
T2正解是证明一个结论:必然存在一组解两端都在树的直径上,变形后是IOI原题。
问了问腾爷(swm_sxt)第二题暴力怎么写,给我介绍了一种写起来特别方便的做法:枚举其中一个点并以其为根dfs,然后形成的环就是结点到根,处理起来十分方便。
果然知道思路后实现方式也相当重要啊QAQ
T3出来问了发现50分非常水啊!只要套个公式两边递推就可以了,我却因为ctsc t3很难所以没看题啊。
其实这道题正解也不难,很多人写出来了。orz毛啸AK。
【反思】
1.暴力总是不够细心,丢了一两个点。
2.思维速度太慢,第一题和第二题暴力都很水但是思考却特别慢。
3.代码能力严重不足,代码经验不足。
4.比赛节奏掌握不好,总以为5小时3道题慢慢来,结果就是时间不够。
CTSC Day2
【考试】
T1神奇的题,看了一下就先过了。
T2最长上升子序列,有一些奇怪要求,分点很多很广,感觉是一道慢慢搞分的题目。
T3吸取教训,认真看了T3,然并卵,居然要用到计算几何的一点知识……完全不会了。
回去看T1,推了推发现了一些关系,搞出了70分,感觉很满意了就没往下想,码了。
看T2,根据数据范围想了两个DP,感觉科学然后码码码。
后来看到第一个点可以直接用O(n log n)求下降序列,但是因为对二分做法不熟悉而且懒得为了5分码代码然后就没写……
出来后DP做法被yyl怒怼,想了想好像真的不科学,不敢继续想。
【成绩】
实际得分(期望得分):70+0(5+)+0=70(75)
第二题DP果然炸了……如果我花点时间去写二分下降序列还能拿5分的QAQ
【讲评】
T1的70分做法大家都会,100分用lucas定理318就可以,没学过就没办法咯。
T2正解是网络流,当然不是裸的。不过我有想到最长上升子序列可以用网络流写,但一想到数据范围就没往下想,还是太弱。
费用流还可以转正权边后用dijkstra优化复杂度诶,第一次知道。
5分二分下降序列,10分状压DP,给分极其吝啬>_<
T3计算几何,正解搜索+剪枝,代码800行(wow)。
然而徐明宽dalao居然……AC了。。。用的是随机化算法(爬山退火遗传之类的结合)加强大的调参居然过了全部数据……%%%第一次认识到随机化调参的强大。
【反思】
1.通常Day1简单Day2难,第一天如果没有及时进入竞赛状态的话Day2想翻盘就晚了!
2.做法没有考虑清楚全面。
3.小的部分分懒得写,缺乏代码能力和思维清晰度。
APIO(IOI赛制)
【考试】
吐槽一下开考前强行让我们在机房睡了半小时,以及半小时前机房开着监考员没来文件夹里有apio中文试题pdf,这会发生什么事?监考员来了之后才让我们全部注销了。
T1彩虹蛇,分五档分数。第一档暴力很好写,第二挡想了想觉得可做,后面没思路了。
T2交互题,分好多档,花了好久才看完题目并理解透彻,然后想了想第一档挺水的,第二挡想出7分没想出15分,不舍得写。然后把第一档写了但是搞了很久。总体下来T2我搞了半天才拿了4分,血亏。
T3商旅,看完题看了第一档感觉是个最优比率环,我01分数规划只是学过但是没写过代码,可是当时头脑一热觉得12分暴力就拿了吧,然后就开始写了……调最优比率环搞了很久交上去WA了,回来一看发现看错题意!!!当时想这场比赛算是完了……时间过半了而我一事无成,敲了个没用的最优比率环,心态爆炸。
冷静了一下,重新考虑12分暴力发现更好写,两遍最短路就解决了,赶紧码完交上去得了12分,心里得到一些慰藉,不过时间不多了!其实也是我思考速度和代码速度太慢的锅啊!
大致想出了T3第二档暴力21分但不是很有把握,T2的第二挡7分还没写,比较了一下觉得T1一二档暴力(23)性价比较高,就回去写T1的第一档暴力,写了交一直WA一直WA,心态又崩了QAQ不得不放弃第一档在最后半小时极限敲第二挡暴力,敲完快速检查到最后都没搞定细节也没输入数据调试,直接无脑交,至今不知结果,九成九是WA的。
【成绩】
实际得分(期望得分):0(23)+4(11)+12=16(46)
其实T3是很有出正解的希望,最后可能因为心态崩、不熟悉最优比率环、蠢等原因没想出来……QAQ
【讲评】
T1正解平面图欧拉定理
T2
T3被认为是全场最水的题目,有约1/4的人AC,正解就是最优比率环QAQ
【反思】
这场比赛可能是我OI生涯最失败的一场比赛,希望不会有下次,反思如下:
1.看清题意
2.提高代码速度&思维速度。
3.提高代码能力和代码经验,熟悉经典问题解法。
4.保持心态稳定良好。
END
最终CTSC铜牌(平均分),APIO铁牌,PKUSC&THUSC无资格,停课1个月后重新开始推文化课。
CTSC Day1的遗憾,APIO的惨败,希望在之后的OI生涯中不会再发生,因为我的机会……真的不多了。
半年后的NOIP2017,明年2月的WC2018&THUWC2018,明年5月的GDOI2018&THUSC2018,明年7月的NOI,机会在一次次地减少,但我不愿在这人生转折点上失败!
CYC never die!
以上是关于APIO 2023 游记的主要内容,如果未能解决你的问题,请参考以下文章