更新历史

更新历史

2024-11-28

开始更新游记

2024-11-22

似乎成功了。整个机房都去了。

2024-11-??

发现 NOI 官网写的要自选操作系统,但报名的时候没选。问了一圈只有 ZHY 妈妈给他选了 Linux,其他全是未知。

以前考试复习 Linux 怎么用,现在要复习 Win 怎么用了。

2024-11-28 (DAY -2)

NOIP 前最后一次模拟赛。

T3 MLE,T2 写太久导致 T4 没时间写暴力。

当做给 NOIP 涨 rp 的。

2024-11-29 (DAY -1)

明天考试,早上到机房按惯例开打板子赛。

ZHY 说赛前打得板子赛时大概率用不到,于是得出结论:赛前要多打板子,这样赛时就不会考这些了(大雾

开了一个数据结构题,一起想了一会儿,想了个大概的思路。希望明天不要大数据结构。

下午坐大巴去,上车不久就开块了。发现了 ZEN 的垃圾行模式,可以将自己打的伤害给自己,非常好玩。ifffer 荣批,不会玩。

住上次省选的酒店,和 XiaY 住一个房间。吃饭前复习了 Win 的拍子怎么写。

晚上 8:30 被 FSB 叫去开例会,开不开一样,罚站 11 h。

回去打了一下块,后来懒得动了,用电视放熊出没和喜羊羊,10:15 睡觉,设了第二天 6:30 的大香蕉闹钟。

2024-11-30 (DAY 0)

被大香蕉闹钟弄醒了。床上颓了 1010 min,吃完饭大巴去杭师大。

又走了一遍不知道已经走了几遍的去考场的路,也不知道以后还可以走几遍。

到得很早,别的学校大多都还没来。WLZX 来的时候面了 XHGua,CZY 一些老乡。

在考场门口站了一会,ZHY 提议说先一个人进去看,是 Linux 就咳嗽一下,是 Win 就擤一下鼻涕。但没人想先进去。

后来还是一起进去了,发现是 Linux,非常高兴。周围看了一圈,能看到好多认识的。

位置靠墙,好评,直接在赛前配好了 sublime 且没被发现。

8:23 发样例,看到了一只 1212 个大样例的题。没发现大模拟。对题意没有头猪。

8:28 发题面,开 T1 看着像贪或 dp。

8:30,NOIP,启动!(监考都没报考试开始,边上的人都开始敲代码才发现的

不是为啥啊,我细节都还没想好你们咋全都开始敲了啊?觉得可能在敲头,就没管,继续想。

不是为啥啊,11 min 都过去了头应该敲完了啊,咋键盘声音还是这么响???难道 T1 这么唐直接贪心就行啦?

细节也不想了,直接开写,写了几段有复制粘贴了几段就没了。测样例,小样例没过。

心慌,觉得贪心假掉了。直接手模样例,但是发现非常正确。debug,11 min 后发现一只 bug,改掉过了小样例,大样例一遍过。

觉得 T1 贪很可能假,打算后面有时间回来写拍。

1515 min 开 T2,神秘计数,手模一下发现确定的单点划分出来的东西互不影响,直接化简到确定头尾的区间问题。

计数直接一手真难则反。诶不是,直接做完了?敲代码,一遍过小样例,第二个大样例寄了。好在挂的是小点,发现竟然有相同的对子!去重之后直接过,此时 3030 min。

按 CSP 传统走着去了厕所,顺便平复下心情。毕竟提前开香槟容易击飞。

开 T3,依然困难计数题。看完题面感觉不可做。一看特殊性质,前面的三挡 k1,k2,k8k\le 1,k\le 2,k\le 8,鉴定为容斥。

但我咋不会做 k=1k=1 啊???觉得很难想,直接开 T4,LXL 风格的数据结构。

一眼暴力部分分给到了 3232,相比平时模拟赛 1010 分暴力还是非常良心的。

没犹豫直接打暴力,2020 min 肝完一遍过样例。

继续特殊性质链,转为序列上问题。开始考虑二分答案,正确性显然,时间过不去。换成整体二分,时间变成 log2\log^2,能过 10510^5 但过不了 5×1055\times 10^5

不知道整体二分在不在 NOIP 考纲内,但感觉有更精细的做法。于是没打整体二分开始想单 log\log。没想出来做法,又去上厕所,觉得还是先想 T3 为妙。

发现决策是正确的。T3 想到对每个节点的儿子进行某种顺序连边,其中只有起点固定为离靠近关键边的那条边,于是 k=1k=1 的答案就是 (duu1)!\prod (du_u-1)!!很漂亮啊,跟关键边是那条都无关,推式子的压力小了好多。

33 min 写完,感谢出题人给 1212 组大样例,测了一发,过了 k=1k=1 的点,皆大喜欢。

既然要容斥那 k=2k=2 的点显然不能逾越。开始想同时满足两个关键边作为根的计数。先推完了一条边能为根的充要条件,然后构造同时满足两条边的。

中间构造假了一次,导致差点以为没有同时满足两个关键边的树,浪费了 2020 min。突然发现小样例二样例解释里就有这种情况,直接画样例并猜测样例的情况就是充要。发现显然是正确的。

稍微算了下方案数,又是好看的一个式子 (duu1[u is between two critical edges])!=(duu1)!×(duu1)1[u is between two critical edges]\prod (du_u-1-[\text{u is between two critical edges}])! = \prod (du_u-1)! \times \prod (du_u-1)^{-1}\cdot[\text{u is between two critical edges}]!判断在两关键边之间用了 LCA,运气巨好直接从 T4 的暴力搬过来用。快速打完,过了 k=2k=2 的大样例。

考虑 k>2k>2 的情况,显然有贡献的若干条边在一条链上,而这种情况的树的数量,和只取离得最远的两条边的树的数量是相同的!

所以只要枚两条边,计算这两条边同时可以为根的情况,再乘上被计算的次数就行了。所以被计算了几次呢?设 xx 为两条边中间的关键边的数量,那应该是被计算了 (xi)×(1)i-\sum \binom{x}{i}\times (-1)^i 次。嗯?这东西不是在 x>0x>0 的时候都是 00 吗?

复杂度 O(nlog+k2)O(n\log +k^2),一看竟然有 8484 分!

代码不难写,维护树上链和还有树上链积就行。维护树上链积过不了大样例调了一下,发现根节点度数为 11 就会出现 00\dfrac{0}{0} 这样的东西。于是把 n=2n=2 判掉然后挑了个非叶子节点为根就过大样例了。

打掉两个特殊性质还剩 11 h。

继续想 T4 特殊性质。草稿纸上画了 4040 min,没想出来。(PS:想的最久的一个做法是正解的一个步骤)

2020 min 写整体二分怕是不够了,所以去检查前面的代码和重测大样例。

测到 T3 第 88 个大样例,发现不对了。为啥跑了 0.990.99 s?又跑了一遍,咋变 0.9990.999 s 了?

完了还得卡常。卡了 1010 min,时间一点没减。完了要寄了。诶忘开 O2 了?开上变 0.60.6 s 了。绷不住了。

最后 55 分钟打算摆烂了。突然发现 T1 一个不知道假没假的处理,慌了。赶紧改掉,不是大样例咋寄了啊?哦是复制代码忘记改变量了,改掉还剩 11 min,大样例过了。

最后扫了遍 freopen,没填字节数表,结束了。

100+100+84+32=316100+100+84+32=316

问分数,好多人写了 T4 的整体二分,但也好多人被 T3 创飞了。BP 打了 T3 的 O(nk)O(nk) 和 T4 的整体二分,估 324324 pts,应该初中里挺高了。

但一堆人 T1 写了很久?想想贪心确实没证过正确性,拍也没来得及写,又开始慌。但 IceKylin 和我贪得一样,说他证过了,稍微不慌了点。

拿到手机瞄了下 LA 群,好多说 T1 是蓝的。

坐等出分。(据说计数题不容易挂分,不知道真假

祈祷 T1 不要假,祈祷多测不要不清空,祈祷取模取完全。

下面好长时间都没比赛了,舒服了。

2024-12-02

据说卡线能去 WC 了。但今年 WC 在浙江为啥名额还这么少?

2024-12-06

下午 4:00 出分。还有 33 h。难绷。要似了。

3:45 据说能查分了。好像是 CCF 的 bug。上申诉通道可以看到分数了。

以前没这么搞过,差点申诉直接提交了。没发现分数在哪,旁边 IceKylin 说没挂分才发现。真的没挂分。开心了。

然后【数据删除】,叫出去【数据删除】,撤回一个开心。真【数据删除】。