(PKU+1)WC2025 游记

第一次线下参加 noiwc,好耶。

1.13

下午从 YT 飞 HZ,天黑得好快。打车到了 SX,入住酒店,点了份外卖,洗洗睡。

1.14

上午起床,吃早饭,出发去学校,开营仪式。大型开盒现场?看到了好多大佬,膜拜。

中午食堂过于抽象了,打个饭排这么长队,饭菜质量也一般。

午休。进考场,试机题目一个是上次 pkuwc 的签到题,一个是经典题元旦激光炮。第一题忘了咋做了,只写了第二题交互。OpenJudge 还是很感人啊。

考前十分钟默写多项式板子,结果 NTT 写错了死活看不出来错。

开始考试。还是要有自信的。必须得秒个题!"军八变军七"

开题。怎么有博弈??是人能做的???还一个数据结构,自闭了啊!

还是开 T1 吧,毕竟输入俩数输出一个数的题还是较为容易的。

这个题目条件必须要转化,我得构造一个最劣的情况?注意到和最大独立集十分相关,然后咋做呢?会了 a>b+1 的情况,两两配对就好了。多个的时候希望用最少的边让 mis 很小,应该咋办呢?猜了个大概是一堆团的形状,就可以 dp 了。

不过朴素 dp 是三方的。不难猜到结论:最大的数减最小的数不超过 1,因此我 dp 的时候只需要枚举加所有不超过 i/j 的情况就好了。复杂度 n^2log。

在 0:11 过了 T1。感觉 T3 根本不可做,先把 T2 过了再说。但是一点思路没有啊???

有点 noip t4 的感觉。有个启发式合并+点边容斥的想法,可是感觉还是不可做啊???

可是没有其它想法,顺着这个想吧。不知何时想到了长剖,但是还没啥用啊?终于意识到了,(u,x) 和 (fa[u],x+1) 高度相似!!!因此把 x 也当作一维,似乎就可以拆成 O(n) 个立方体加?复杂度 (n+q)log^2???感觉很对啊,长剖这么牛的吗,开写。

写着写着发现假了。。。。。合并是集合合并,不是单点,完全没法优化。只能把区间个数改成 nlogn,复杂度就 nlog3n+qlog2?????感觉完全不可过啊。

继续思考,无果。只能写这个了,碰碰运气。

后来写完了,慢慢优化成三维偏序。提交,41 分。。。

再咋卡常呢?发现排序很多余,改成了归并,对就是那个一堆 pair 的那个东西。不过常数并不大,因为后面有 L=1 的特判,拿了 77。不知道最后一个 sub 能不能过,先删掉交了下,发现过了。2000ms,游刃有余。这时候大概过了 1h40min 多,开始看 T3!

尝试按题意写一个暴力 dp。感觉 3000 显然是给 bitset 优化 dp 的。感觉可以 f[i][j][0/1]???哦不对,想了一会,发现只要 f[i][j] 表示先手怎样就完了。然后转移也不难,一堆 bitset and。在 1h56min 拿到了 20pts。

之后咋办啊。感觉做不动了。AB 性质似乎还没那么难?好像对刚才那个 dp 换个维度基本就好了,然后一个点的转移完全包含它后继点的。因此分别记录奇数和偶数最优解就完了。状态数线性,转移也不难。在 2h15min 拿到了 50pts。

接下来自闭了。完全想不明白怎么去扩展这部分暴力。不过缩点肯定是要的,注意到一个 SCC 内的 dp 状态显然全相同。因此一起转移就完了?内部要特殊考虑下,从大到小排个序再类似转就好了。在 2h45min 左右拿到了 75 pts。感觉赢麻了,胜券在握?最后一部分分似乎套个二分就好了啊。

争取 3h 前 AK。结果发现要把一堆集合拼起来排序做,复杂度爆炸了啊????先把这个暴力打完,删掉之前的 3000 暴力,分数没降。

试图分析这个 dp 过程的性质。一般来说,想法基本都是取极值的诈骗,因此尝试考虑最小值是否会被选。如果没选,那它 +1 一定被选了,以此类推,一个连续段基本是一体的。注意到最大只需要考虑到 min(f0[x],f1[x])-2,因此暴力基本可以打出来了。考虑每个连续段末尾点(t 选 t+1 不选),一直 -2 到前面位置,更新对应的 dp 值。可是 wa 了啊???

试图用之前写的对拍找错,但是拍不出来一点。改来改去,都过不了,交了好多发。争取改得更暴力写,发现还是过不了???????这时候开始急了。

注意到一个小错,改掉了,暴力终于又对了。找连续段去转移,也没问题了?可是还是不会做啊。。。这东西只会平方,只找最小也只会二分+二分,俩 log 啊。

算了没多少时间了,果断猜结论。找一个最小的段,另一个奇偶性的不管了,这居然没 wa???不过 TLE。

改成二分+二分,咋还 TLE???我觉得这个常数并不大啊,所以哪里错了。没想出来,只能再去优化。

又上了个厕所,发现可以主席树。这时候只剩 30min 了,赶紧码。怎么又 wa 了????

调不出来,想死。这时候都交了 20 发了可能。改成暴力,还是 wa,完全不知道自己改哪里就寄了啊。

瞎改,瞎交。终于找到了错,没取 min。信心满满去交,准备迎来 AK,结果当头一棒——超时。

只有十五分钟。奇迹能否出现?尝试卡常,把 vector 改成了只保留一个数。CE 了。这很重要,因为我发现还有一个地方是平方的忘优化了!!!

这部分咋做啊。好像是二分?赶紧把 vector 拆成了两个,分别二分去转移,可是还是 wa 啊。怎么第一个 sub 都 wa 了?

又改成了暴力,结果又 wa,交了一堆 assert,没区别。好像都二十五六发了,还是完全意识不到错误,咋办啊。。。

我去,发现了逆天错误,我按奇偶性分居然是按 b[i]%2 分的,我分了个寂寞?(应该按 i%2)

开心死了,终于找到问题了,再改,还过不去吗,不可能!交!(第 28 发)

很好,又双叒叕 wa 了。这时候已经绝望了。又 assert 了下,没区别。

这时候一定要冷静,时间也没那么缺了,最缺提交次数,只有三次机会了啊。终于发现,二分完完全全就是不需要的,我不取最小值取啥啊?

改完了,其实都不需要这些向量和二分,直接找最小转移就完了呗。交!

wa……这次一个 sub 都没过,哭麻了。

做个代码比对。欸,我是不是根本没判可行就转移了啊?改,再交!(第 31 发,只剩一次机会了)

哇偶,终于过掉了!!!3h53min。激动得拍了手。也是 pkuwc AK 选手了。

最后五分钟尝试调我的 ntt 板子,无果。

出考场开心死了,以至于都不愿意藏分了。老规矩,回去代码拍了照准备复写。直接说出了每题分数,可能会被卡常?

结果发现一车人 AK,吐。。。终于意识到,自己就一普通人,哪来的那么多唯一、特别。

不过还是很开心的。day2 加油!

1.15

上午听课。一个是 AI 解决游戏问题(从围棋到 MC,围棋要怎样的搜索策略?如何让 AI 打 MC 不只砍面前的树?不过都是简单介绍),另一个课是介绍人性机器人(干体力活),抓东西这个复杂的问题。居然并不能只靠算法,还要结合物理这些内容,配很多个臂,用不同的抓法!

下午比赛。先说两天最终分数:100+100+100+83+100+44,第二天被不少人翻盘啊。

开题。先放眼望去有没有 mod 998 的题。好耶,居然有!读下题,这啥,质因数分解?太难了,我只会多项式。。。T1 咋是个交互,不过应该是签到题,不会特别难。T2 疑似费用流,太吓人了。。。c

具体先看 T1,思考挺久,无果,只会每次更新三叉戟,这样直径三个点中有两个都在三叉戟上,再依次扫每个点去判断。这样次数是 4n 的,n>3 时只需要一次 in。但是完全不知道咋去优化。中途思考过换做法,比如先求出一个离 1~2 最远的点,但是感觉性质还是找不到啥。也想过随机化乱搞,但是菊花没救,所以只能 4n 的样子。先写掉吧,拿到 83 的时候已经过了 55min 了。

赶紧思考 T3,必须做出来。是不是多项式复合欸?但是直接做会有减掉负数的问题。假如没有呢?似乎每次都是要么复合 x^2/(1-x),要么乘 (x+1/x),求每一项?这不是直接维护每个系数就做完了嘛!准备写。

糟了,出事了。越复合越复杂。而且又思考了一段时间,终于意识到,这本来就是错的!哪里有复合这档事。。。遂放弃。赶紧看 T2 吧。

发现网络流没法做。想想线性规划对偶?似乎我还没决定选哪相邻 m 个位置,所以也没法做,所以咋办啊……

正在思考按值域 dp。或者可以把它想成,先把所有数排成一列,求最短路?然后 dp 可能要用平衡树维护?

想多了。发现转移是分阶段的,所以是个经典一维 dp。不算那么难写,两个多小时拿到了 62 分。赶紧看 T3。转移是每个点对一个前缀,只和前缀和 %k 的值有关,但是也太难改下去了吧?盯着这个形式想了半天,没啥进展。

先把 32 分暴力打了。因为多项式没法办,所以只能暴力。因此有这样一个想法:设置一个阈值 T,<=T 的暴力做,找第一个 >T 的时刻,用一个类似 meet-in-the-middle 的东西。算了下复杂度,有点爆炸。不过还是要先写出来的。

这个 dp 怎么跑得这么这么慢???而且关键一步还不会枚举。放弃吧?换了个思路,倒过来爆搜,发现跑了若干秒但还没那么慢。或许能拿 59?赶紧做。

又遇到了一个问题,转移到 l~r 每个数要单独算/px。所以状态数会非常非常多,因此只可能过 l=r 的部分分。还 wa 了,和暴力对比着找了找错,找到了。在 2h40min 左右拿到了 44pts。感觉其它啥都不会了啊。又注意到只需要把这些状态拿出来,dp 可以暴力。然而效果并不好,也可能是 unordered_map 效率不咋地。1e8 那个部分分完全没希望啊。

只剩一个小时多一点点了。我还是三题暴力 83+62+44,请问路在何方?而且开场到现在一直是三题轮流想,尤其是 1 和 3,但是都烂完了。

算了,争取改改 2 吧。然而这至少是个三维偏序,俩 log 还不知道要不要树套树?开始瞎想了,比如尝试分治。

发现似乎可行?只要预处理出每个 i 能达到最靠右的点就做完了。可这个也不会,不过似乎也只是个 %k 分类,区间赋值,单点查。似乎可以动态开点线段树处理出来。

震惊的发现,我居然暴力过了 73 分,这真卡不了吗。。。算了,既然 cdq 分治可以直接做,那就优势在我!不过还要拿个动态开点线段树,单点修改,区间求 min。不过不难写,在 3h25min 过了这题。

现在又是到策略抉择的时间了。到底开 A 还是 C?我仍然认为 A 是个签到,于是继续想这个题,C 很难再有进展了。然而到最后也没优化掉 4n,而且还发现我代码一个小错,也不懂咋改。尝试用 n=4 链来 hack 自己,但是并没卡掉。不过了,就当这档过了吧。

此处隐去一些部分。反正总分 527。

还不错。下次加油吧!

End.

1.16

你猜。

1.17

你猜。

坐火车来到了绍兴。进学校。

开幕式因为有课没去上。听说 dzd 讲话很有意思。

1.18

上午 zak 的课。前半段很好,后面不知道为啥感觉越来越冷就急了,完全听不进去课。

中午发生了点事情。下午去晚了,不过能听懂一些内容,学到了线性双极定向和神秘切边等价理论,但还得再看看。好厉害。

论文交流全听了。居然有不少我能理解的,当然科技全不可能会的。

1.19

上午大模型编程语言。似乎听懂了前一部分?似乎是 AI 生成代码效果没那么理想,应该怎样训练,或者用啥算法。

中午踢球,好耶。虽然菜死了,一直被虐。

下午脚疼。听 kubic 课,大部分题目能听懂不少,不过还有一些不理解的。题目选的都很好,点赞!

晚上还是论文交流?膜拜 zyf 大神。

1.20

早上醒来身体也开始疼了。不过问题不大,缓缓没多大问题,只要不跑步就好。

试机。喜提 0+100+24+0。

下午考试,啥都不会啊???通读题目,感觉没一道简单的。尤其是 C,题面短题目一定特别难!

posted @ 2025-01-14 23:22  maihe  阅读(446)  评论(0)    收藏  举报