2020省选游

今年咋是联考啊。

没有停课的日子

除了最后一周,都只占用下午下课后与晚上的时间。我寻思倒不如多整点停课,划走晚上算什么嘛。

稳定每天一套模拟赛,每天被吊打。

学会了多项式的卡常技巧

终于停课了

才发现 0202 年了你校还有一个机房是 32 位 win。

咋只剩一周了。

根据惯例(¿)最后一周不会天天有模拟赛。

信心场也打得和屎一样。没救了啊。

想复习点分、串串、网络流、数论、计算几何。算了先写个 LCT 吧。

各种模板题写挂,为啥码力退步巨大多,我人傻了。

随便学了学 k-D Tree,SAM。

考前补知识点简直是女娲补天。

奶一口都不会考算了。

最后一天

你校留生工作傻逼,初三自招壬填报志愿把我们赶来赶去。

最后到了「数学研究室」,其实就是颓废室啦。大量无系统的机,几台设了密码的机。有个老哥密码提示「好啊!来啊!」,输入114514进去了。

于是试图在某无系统电脑装个 UBuntu 18.04,然而失败。

就这样白费了一早上。

下午机房的人都开始颓。我也想颓,然而还在复习(预习)知识点,算了。

晚上受不了了开始看神仙扫雷。

走之前打印了准考证,和几个板子。试图在宿舍看看,然而还是睡觉好。

商店里冰火人在问问题

开场 1min 输奇怪的密码,10min 把题看了一遍。怎么这么 CSP2019 day 1。

icefire 看起来就是区间加减和维护一个非严格单峰函数的右峰。

$Q\le 2\times 10^6$,-lm。怎么省选还考卡常的,差评。

二分?好像我会 $O(Q\log^2 Q)$。然而只有 60 分。

三个.cpp开好了,测一些输入输出,发现文操错了:

1
2
freopen(".in", "r", stdin);
freopen(".out", "w", stdin);

怎么俩stdin,赶紧改。

于是开始看 problem。草怎么模数不是质数,昨天谁奶的来着。

$$\sum\limits_{i = 0}^{n} x^i \binom{n}{i} = (x + 1)^n$$

开始推。

$$\begin{aligned}S_m
&=\sum\limits_{i = 0}^{n} i^{\underline{m}} k^i \binom{n}{i}\\
&=\sum\limits_{i = m}^{n}\dfrac{n!}{(i - m)!(n - i)!}\cdot k^i\\
&=n^{\underline{m}} k^m\sum\limits_{i = 0}^{n - m} \binom{n - m}{i} k^i\\
&=n^{\underline{m}} k^m (k + 1)^{n - m}
\end{aligned}$$

想了想 $n^{\underline{m}}$ 按 $m$ 从小到大计算可以 $O(m^2)$ 求出所有要用的。好啊,只要把 $f$ 转下降幂多项式就可以 $O(m^2)$ 了。

如何转下降幂?

设 $f(x) = \sum\limits_{i = 0}^{m} b_i x^{\underline{i}}$。

假如我知道了 $b_i$($i < x$),那可以求出 $x!b_x$,不妨设 $c_x = x!b_x$。发现 $x^{\underline{i}}b_i = \dfrac{x^{\underline{i}}}{i!}c_i$。

假如我可以 $O(m^2)$ 处理 $\dfrac{x^{\underline{i}}}{i!}$($x, i\le m$)和 $\dfrac{n^{\underline{i}}}{i!}$($i\le m$)岂不做完了?

后面那个我会!直接搞 $m$ 个数,每次要除一个数的时候就遍历这 $m$ 个数除可以除的,直到把这个数除到 $1$,$O(m^2)$。

前面那个,乘的数和除的数都 $O(m)$ 有啥用?只能 $O(m^3)$?没这部分分啊!

自闭了,我也不知道浪费了多久。

随手写下一个式子:$\dfrac{(x + 1)^{\underline{i}}}{i!} - \dfrac{x^{\underline{i}}}{i!} = \dfrac{x^{\underline{i - 1}}}{(i - 1)!}$

哦 $\dfrac{x^{\underline{i}}}{i!} = \dbinom{x}{i}$ 啊,那没事了。

于是又写了 10min 走人,写完都十一点半了。

自闭的途中试图写 shop 的最低档暴力,未果。想了想 icefire,还是只会俩 $\log$,人没了。

没办法只能写。

瞎搞过了第一个样例,第二个死活过不去。十二点三十了,我觉得我在冒汗,头脑也已经将近停止转动了。

全机房好像只剩我的键盘在响。

看了看自己的写法,发现二分的时候没有取到温度最大的。

又补了一个二分。补的时候监考员已经表示只剩十分钟了。

距离考试结束只剩几分钟,过了第二个样例。

认真看了看感觉没错,最后三分钟啥都没干,考试结束了。

大概 60 + 100 + 0 罢。


出考场一想,icefire 那个东西好像完全可以直接树状数组上二分,省掉一个 $\log$。

也会了 shop 的 10 分暴力。

还是考场降智啊。

顺便用自己傻瓜的 problem 的心路历程逗笑了整个机房。

明明我昨晚刚看过斯特林数,结果 problem 推导完全没用上。

某神仙拿草稿纸在场上写游记结果草稿纸回收了,草。

吃中午饭大家疯狂奶明天考啥。毕竟今天没串串没计数没树。

下午在「数学研究室」划水划了一下午,发现テトリス(Tetris)底力下降巨大多

晚上在 32 位机房又划水划了一晚上。

作业是在树上传递信号

反正 CSP 成绩和昨天 icefire 笑话已经决定我进不了 E 的事实,今天决定随便考。

transfer 看起来是个 $O(m2^m)$ 之类的,然而我想了 20min 只会阶乘做法。

count 看起来暴力分好足。

第一个包 10min,第二个包 3min。

矩阵树定理是啥来着……行列式怎么算来着……

于是成功在第三个包浪费巨久。

等等第四个包怎么搞啊,怎么求必须选某条边的树的个数啊!!!

于是只拿了前三个包跑路了。

tree 一看就是个工业题,大概要维护一个数据结构支持:

  • 插入一个数
  • 一个结构内全加 1
  • 求一个结构内的异或和
  • 合并两个结构

这不是 ynoi trick 吗,反正就 Trie 合并完事。

于是敲了 80min 左右搞出来了。

数组卡紧开,反正值域到就完事了。(flag)

还有大量时间搞 transfer。

先把第一个包拿了。

剩下 40min,找个暴力拍拍拍。

$5\times 10^4$ 两份代码都跑得飞快,$5\times 10^5$ 两份代码都跑不出来。

怎么回事啊!

$1\times 10^5$ 也能跑。$2\times 10^5$ 也能跑。

自闭了,直到考试结束都不知道发生了啥。


一出来发现 transfer 可以把边的贡献拆在点上,然后随便 $O(m^2 2^m)$。

发现 tree 只开了 $2^{19}$,凉了。

发现 count 第四个包只要算全图生成树个数和去掉某条边之后生成树个数,一减就是包含某条边的生成树个数。

又降智了。预估 30 + 80 + 50。

两天串串没考,计数没考,奇怪的数据结构没考,计算几何没考。我怀疑我来的是 CSP 2019 Round 2。

一上你谷看到 lxl 发的听说省选考了Ynoi题一样的trick,想到考场上自己好像第一反应也是这个。

滚回文化课

考完两天出分了。

类型 icefire problem shop transfer tree count
实际得分 60 100 0 30 35 50
考场上会,但是写挂了 0 0 0 0 65 0
出了考场不久会了 40 0 10 30~40 0 20
再肝多久也搞不出来 0 0 90 10 0 0~30

考场上降智(即表中第三行)是主要丢分点。

至于写挂的 65 分……

tree 暴毙是因为它看起来开了 $2^{19}$ 实际上只开了 $2^{18}$。(实际上是被某人奶死的(确信))

算是买了个「值域要仔细看」的教训吧。

并且考场造数据的时候,值域可以尽量开到上限(比如在 $[\dfrac{1}{2}W_{max}, W_{max}]$ 之间随机而不要在 $[1, W_{max}]$ 随,或者直接测几个全开 $W_{max}$ 的数据)。如果这么干了,考场上是不是也能救回来那 65 呢。

发现考场我不愿意去洗手间,其实 4.5h 的比赛去一去转换一下思路也许确实能一定程度上避免降智吧。

感觉睡好确实挺重要的,精神状态比 CSP 好太多了。

距离中考只剩一个月。

暂别。