游记 PKUWC2024

2024 北京大学全国优秀中学生信息学冬季体验营 1.25~1.27

重庆市育才中学校

1.26

13:00

网络卡顿挂了 5 分钟。但没事,因为在写 ntt 板子。还写挂了。然后看了题目,T1 应该可以做出来,T2 被吓到了,T3 可以想一下。T1 -> T2 -> T3。

T1 首先写了个区间 dp 交上去。目测是一个 dp 优化,把决策点输出一下看看。首先有结论是 L____R 是先手必胜,其中 _ 是任何字符串。然后其它 R__L 的好像没啥规律。然后随机了几个数据,输出了一下先手必败的,发现 RLRLRLRL 是必败的,然后还有一个 RLRRLRLLRL 怎么也是合法的?怎么像括号匹配?真的!40 分钟就过了。

定理。将 R 视作左括号,L 视作右括号,则先手必败当且仅当字符串为空或括号序列合法。

证明。仿照 nim 游戏的思路,证明以下三点。

  • 终态是必败态。
  • 一个必败态,无论如何操作都是必胜态。你大概考虑一下,一个合法的前缀,刚好下一个字符是 R,切不到。
  • 一个必胜态,存在方案能到达必败态。左括号看作 +1,右括号看作 -1,那么序列中如果存在前缀和是 -1,那么说明出现了右括号,直接保留右括号左边(L)的部分。否则将序列翻转,左右括号互换,必然有 -1,否则你这是合法括号串。

13:40

T3。首先怎么做原来的题目,怎么做啊,把询问一玩了一下,感觉影响很大,对整个堆影响很大(过程中几次把堆画成小根堆),所以肯定是要对一个点做分析。根据题目结论,堆形态是固定的,想象它为什么是固定的啊?

回想起堆排序干的事情,首先你把所有数扔一起建大根堆,然后拿出堆顶放在最后,pop 掉;拿出堆顶放在次后,pop 掉;……。pop 了 k 次以后,堆顶就是第 k 大。pop 和放一个 0 是一样的,pop 就是主动置零或者零从父亲下去。所以放 k 次零之后这个节点的值就是子树第 k 大,最大是第 0 大。

对于节点 u。当我已经通过某种方法确定了左右儿子后,那么我自己的值,则要大于两个儿子,而且尽量小,相当于两个儿子的 max 在子树中的后继。一下就可以转移了!但是有一个问题就是 00 就是原神,如果将叶子的两个儿子当作 0,那么,当这个点不是关键点(S,下文同)时,这个点可以直接取 0,否则还是 0 的后继即最小值。其它情况都是 max 的后继,分讨在这里严重的出现了!然后知道了询问一为什么不是 23 了。会了这个就可以配合爆搜 S 过掉 subtask 1, 2, 3 共 40 分。然后观察到一个点的最终值只和两个儿子有关,在修改 x 后暴力跳父亲到根就能过掉 subtask 5,O(nlog2n),需要实现好一点,写个二分,有一点卡常。

15:00(大概)

急了,写了 T2 的 11 分暴力。

然后 subtask 4。回归到这个题原本的题意,要求 f[x]=zf 是这样操作后的最终的值)的方案数,首先不在 x 子树内的点就线性乱搞。设计 dp 状态,暴力,dp(u,=z) 表示 f[x]=z 的方案数,根据 subtask 1, 2, 3, 5 的 dp 式子,需要满足 max(f[2p],f[2p+1])z 的前驱(z 的前驱记为 y),进一步发现是形如一个儿子固定 =y,另一个儿子 <yy 在前者的子树中的东西。所以又会有 dp(u,<z) 表示 f[x]<z 的方案数,拆成两个儿子都 <y 的方案数的乘积。这里就有 0 的问题,太恶心了,忘了怎么分讨的,就是对着 z,y 是否为 0 以及是否关键是否叶子分类一大堆,还要注意不要重复递归保证复杂度正确。反正最后是写出来过了 subtask 4 的 20 分。注意有一个基本事实是如果 f[x]=0,那么整个子树的 f 都是 0O(nqlogn) 可以通过。

后面是动态 dp 的东西,看上去并不好写。不写了。

16:00

怎么分数是 191 啊。看看 T2 性质?subtask 1 过掉以后就和值域没啥关系了,没有判断出来是个什么类型的题目。首先枚举大小关系,然后做高斯消元的时候有自由元,推了一下是 excrt 形式(aixbi(modc)i 也是 excrt,望周知。如果 gcd(a,c)1,记为 d,则变成 (ai/d)xbi/d(modci/d) 直接整除,bi 不能除直接无解,然后就有逆元了,然后就 excrt 了,要最小的整数解)。谁写啊?而且还有相同的方程,矩阵直接不满秩,难受。这个问题的关键是我们要求整数解,不是有理数解,自由元可能通过调整可以调成整数,甚至不止一个自由元。

然后就沉默了。

17:00

100+11+80=191。好像还可以。

T2 大家都过了(好一个“大家”)。说什么 a 数组(原题的 f)区间加一,则 f 数组(原题的 f)的那一个区间加上区间长度相关的东西,其它不确定。这个 n1 是点边互换的。然后 dp,然后不知道怎么做。

大家 dà jiā
2. [great master]∶犹言大作家,大专家。  艺苑品题有大家之目,自论诗者推李杜始。—— 王夫之《夕堂永日绪论外编》
5. [polymath]∶知识渊博者,博学的人。
——摘自百度百科 https://baike.baidu.com/item/大家/32746

1.27

56+55+55=166 细节明天

13:00

T1 鉴定为贪心,T3 鉴定为 sshwy 讲过一个类似的但完全不一样,可以试着搞一下,T2 没有想法。

T1 贪心写了一下发现细节有点多,写了一会把原问题刻画成线性规划了,贪心顺序不知道是啥,有 11 种决策,就弃了。后来想起对偶,对偶完了以后也不会解,搜出来假了。沉默了。

T3 首先将栈数组扫描线掉,无弹栈就是线段树二分,y=1 就是维护总和,直接分块维护一下,大概形如弹出一段再加入一段的形式,是根号的。后面想不到。

T2 会了状压 dp 后找到了 m=2 的规律。

然后摆烂了。

56+55+55=166

17:00

T1 直接贪心,换一下顺序,按照总和——4——3——2——1 的数量选。

T2 观察到 modd1 同余的 d1 个链,一开始一定是降序才能有用。然后状态数就对了。

T3 分块之后暴力维护那些栈竟然是能过的,O(nnlogn)

沉默了。

然后 pkuwc 2024 就结束了。

晚上去了解放碑,洪崖洞,第二天去了武隆区的天生三桥看了一下。然后就是 noiwc 2024 了。

posted @   caijianhong  阅读(866)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示