游记 CCPC2023 深圳站

广东实验中学 省实信奥2队

https://vjudge.net/contest/594105

11.11

早上坐车打狼人杀。

下午是开幕式,孙教授的口才真的不错,很好笑。

然后是热身赛。

15:30 热身赛

只有三个题。

看到题目背景和格式还以为是什么省选模拟赛。。。

A

昨晚 pht 讲过这个题,直接不配 .vimrc 在赛前写好代码,但是 0:00:36 没有一血(草)

强化条件为没有奇环,考虑一个分治,左右两边连满二分图,内部的递归下去,分治大概十层左右,同一层用同一种颜色。

更加强大的,__buildin_ctz(u xor v)

B

C 看上去很难,所以我写 B,但是写着写着乱了,直接不会的,本来说秒了的。最后是黄队写的。

不等式左右两边同乘 \(2\times 10^L\) 即可避免浮点运算。因为 \(\sum p_i=1\),特判 \(p=1\) 之后因为 \(K=10^6\) 必定是一个合法答案,所以直接枚举答案。然后有一些上下界,加起来看看 \(K\) 在不在范围内。

C

看了很久,大概是什么前缀最小值右移一位,沈队想暴力数据结构维护,但是他不会。黄队没啥想法,一直假。然后我很慌。我们看到有一队 7 分钟过了 C,想是不是诈骗的。

发现我们很会询问全局:维护所有数字到 priority_queue 中,每次放一个 \(x\) 进去之后,把最小值干掉。更多的操作时,也可以这样操作,或者将所有操作的 \(x\) 全部放进 priority_queue,然后弹出同等数量的最小值,是等价的。因为后面不影响前面,所以可以将询问拆成两个前缀之差,然后离线询问,把询问的 \(x\) 插到数列最前面。

问题变成了查询区间的前 \(k\) 小值之和。任意数据结构即可(如以下标为版本,以值域为线段树信息建立可持久化线段树,查询时二分)。\(O(n\log n)\)

黄队说这个题很妙,确实很厉害!!!

热身赛结束

AK

晚上

吃饭,狼人杀,回酒店,没看无人机表演(看了拍摄图片很厉害,遗憾了),狼人杀,黄队演唱会,睡大觉。

11.12

行李神秘寄存,不能带电子产品和水。

0:00:00(9:00)

比赛开始,.vimrc 调试好了,然后三个人随机看题。

我看了一下 I,一开始以为 \(b\) 的值域很小可以直接枚举 \(b\),特判 \(k=2\)(实际上两个都不是),声称要写,然后就在写。写的时候发现越来越假了,发现一个 \((a-b)|n\),需要 Pollard-Rho,我们带了板子,可能会很久。

黄队说他会 A,于是马上把电脑给他写了。

赛后题解:按照值域分治,分治到 \([L,R]\),取 \(mid=(L+R)/2\)。假设现在的 \(a\) 全是 \(L\),将 \(>mid\) 的数字二操作加,然后统一用一操作抬到 \(mid+1\) 上,\([L,mid]\)\([mid+1, R]\) 分治下去。

0:30:06 通过 A 题 (-1)

沈队发现榜上过了很多 F,声称是签到题,于是电脑给他写。根本没有看题。

赛后题解:直接分讨一下?

0:47:39 通过 F 题 (+)

我想清楚了 I 题,就是因为 \((a-b)|n\),然后考虑 \(c=a-b\)\((b+c)^k-b^k\),展开之后有一项 \(b^{k-1}\),因为这玩意 \(\leq 10^{18}\) 所以 \(b\leq \sqrt[k-1]{10^{18}}\),开 __int128。Pollard-Rho 枚举 \(c\),二分找到 \(b\)

赛后反思:太麻烦了吧。。。

然后他们在看其他题,口胡出很多能写的题,然后喊我写快点。

1:26:58 通过 I 题 (+) 差点就一血了

L 题是一个期望 DP,一开始看了没啥思路,开了 IJKLM 然后只会 I 题(???),看了 BCD 又不会(???),非常伤心了。

沈队说了一遍他的 DP。我觉得很对,然后他就过掉了。期间写错一个模数和若干 \(m, k\) 互换。

\(f_i\) 表示第 \(i\) 次操作后有多少个叶子,\(dp_i\) 表示第 \(i\) 次操作后一个叶子的期望深度。每一次操作,直接考虑新的叶子们的期望深度和。

dp[i] = (dp[i - 1] * (f[i - 1] - 1 + m) + m) / f[i];

答案分为最终叶子(\(dp_k\))和被扩展的叶子(每次操作后被选出的叶子进行结算)

2:06:35 通过 L 题 (+)

这时候的排名有点不好看,需要加快进度。很急,很多题要写。

黄队写 J 题。然后我和沈队看别的题目。没什么思路。

2:27:36 通过 J 题 (+) 总榜一血

黄队继续写题,M 是哈希题。

然后一直 Wrong Answer。黄队打印了代码调题,然后我记得是沈队声称会 G,是分块,然后黄队看其他题目,他冷静一下。因为已经是四哈希了。

我看了几眼发现他高精度写挂了。

2:44:03 通过 M 题 (-6)

沈队写 G,沈队的 G 又是哈希题(怎么全是哈希。),然后又要调。和黄队讨论了一下 E 题,发现好像是诈骗的,想到应该枚举颜色之后,黄队口胡了构造方案,然后抢了机器写 E。

大概就是,考虑出现次数最多的两种颜色分别出现 \(c, d\) 次。如果 \(highbit(c)=highbit(d)\)\(highbit(x)=\min\{2^k|2^k\leq x\}\)),那么可以直接缩减区间,最终会出现其中一种颜色有 \(highbit\) 而另外一个颜色刚好减爆。所以答案是 \(2highbit(c)-1\)

否则从高到低考虑 \(c, d\) 的每一位。如果 \(c, d\) 两位加起来 \(\leq 1\) 说明目前来说最终答案必定是这个数。否则当他们两位是 \(1\) 时,从全局开始缩减区间,直到某种颜色的这一位被减爆,取得最大值。

官方题解:c | d | highbit(c & d)。本质相同。

3:09:06 通过 E 题 (+)

黄队调沈队的 G,我在看 CDK(B 一开始讨论过感觉是科技),然后不会做,D 有一点点想法。准备他们过了就开 D。

3:54:13 通过 G 题 (-4)

D 题果然是简单的。黄队指出先手不可能胜利,然后举了几个例子之后,发现只要先手走到一个神秘子树使得后手不知如何决策就能平局。搞到的神秘结论是:平局当且仅当存在 \(u\) 使得它子树中有超过一个叶子且

\[dep[LCA(\{v+1|v\in subtree(u)\cap leaves\})]<dep[u] \]

直接 dsu on tree 好了。

现在才发现不需要 dsu on tree,因为子树答案可以直接合并。

K 题的结论是两个序列的后缀最大值相同就平局,直接 P4198 楼房重建 就好。问了三个人都说没有写过楼房重建。我提出我写 D,黄队想 K 的细节。

D 一开始还傻了写了 2log,突然发现直接维护当前最大的 LCA。黄队好强,黄队好强。

4:05:15 通过 D 题 (+)

(不知道为什么场外直播看到我们过 D 题了?不是封榜了吗,不理解。)

然后黄队写 K 题。又是哈希。然后又要调哈希,发现他的底数次方那个数组全是 \(0\)

4:45:04 通过 K 题 (-4)

剩下 BCH,B 一上来就搞过了没啥,C 一上来就有 \(7^6nT\) 的过不去的,H 因为我们不知道怎么使每一位独立然后寄了。吃饭。

5:00:00

10 题 1856 min。

闭幕式

继续开幕式的幽默风格,开场的机器狗表演,左边两个寄了。然后有领导,杜老师(dyh)讲话。听了一遍讲题,现在还不会 CJ。

滚榜。具体榜单可以看 vjudge,最终结果是总榜第五打星第二(如果没有 Jiangly Fan Club 就是打星第一了草)。排名下面是广铁一中和广大附,很遗憾广大附没有过 M。发现是全场罚时最多。

回程继续狼人杀。


这一次打星队真没有牌了,但还是玩的很开心,拜谢黄队,拜谢深技大,拜谢组委会。于是这就是结束了。

posted @ 2023-11-13 13:20  caijianhong  阅读(741)  评论(0编辑  收藏  举报