do_while_true

一言(ヒトコト)

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 的计树题\(\mathcal{O}(\log n)\) 矩阵快速幂做法,薄纱题解好吧。那么这个薄纱题解的做法是怎么做的呢?

其实也不难,前面用 gf 技巧得容斥系数的技巧见过就能想到,现在我们知道如果令一个长度为 \(i\) 的连续段权值为 \(in[z^i]\frac{z^2}{1-z+z^2}\),一个连续段权值的 ogf 是 \(F\),那么答案的 ogf 就是 \(\frac{1}{1-F}\),多项式求逆就 \(\mathcal{O}(n\log n)\).青蛙看得很本质,说 @&#DS*&DGYASU(@ 然后就是一个线性递推,BM 求出递推式之后就能 \(\mathcal{O}(\log n)\) 了。

去一边去!先看看 \(\frac{z^2}{1-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\frac{len}{3}\rfloor\) 的奇偶性分类。这样我们就能通过记录模 \(3\)\(0,1,2\) 处的位置的一个前缀和状物(每长度为 \(3\) 分组,按照奇偶决定对前缀和贡献为正还是负)就能 \(\mathcal{O}(n)\) 递推出来了。

这玩意能矩阵快速幂,但是信息数还是太多了,大概还需要一组一组转移。其实递推 \(f_i\) 可以直接考虑 \(i\) 所在连续段长度,\(\leq 6\) 的直接转,\(>6\) 的让它从 \((i-6)\) 那个位置续上。由于权值中需要乘个 \(len\),所以续上的时候要多记一个 \(g\) 表示只有最后一段没有乘 \(len\) 的答案是多少。现在就只需要记 \([i-6,i-1]\) 的所有 \(f,g\),信息数是 \(12\),先把前 \(6\) 个位置递推出来,再矩阵快速幂就 \(\mathcal{O}(\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 四人打诈牌,大概研究了这几种打法:

首先是小技巧:

  1. 记牌,这个比较基础但是也比较难,我会记王在哪里,虽然质疑之后只会把最后出的人手牌公示而不公示前面的,但毕竟线下游戏也避免不了一些场外信息,通过记牌简单推理出谁打出什么样的牌一定是说谎也是有用的。
  2. 如果策略是需要抢先手的,那么拿四张不亏,这个后面解释策略会说。

然后是几种打法策略:

  1. 一般不抢先手,如果场上有自己手里的牌就跟出。这样打的好处是别人不敢质疑你出的牌,所以也可以说谎把憋在自己手里的牌打出去。
  2. 先乱打乱翻(当然还是带点脑子比较好),拿四张相同点数不亏,把两个王转自己手里,这个时候别人不知道你手里两张王。然后就等天时地利人和,当然也需要一定的观察能力抢到先手,不断砸四张相同点数的牌(这个时候质疑你肯定失败,不质疑你你又可以继续砸)把所有牌一次性砸完。
  3. 如果手里有多张点数相同的牌(三张 3,四张 4 这样的),不断单出这个点数,这里面可以混出出现次数少的牌,从而达到手牌提纯的效果,这个也能配合打法 2.

破解打法 2 的情况,分两种:

  1. 开始扔四张点数相同的牌,但是手里没有王。这个时候其他人可以用自己手里的王通过说真话截胡。
  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 在济南蹭了峰一个蜜雪冰城发现配料一样的果茶蜜雪冰城价格是一半),小怪兽还点了炸鸡,三个人炫,爽!

晚上去小怪兽房间睡的,他跟我说晚安喵诶!

posted @ 2023-05-22 23:54  do_while_true  阅读(109)  评论(2编辑  收藏  举报