牛客多校比赛记录

我很菜,而且很穷,喜欢白嫖,所以搞到了退役选手 @wlzhouzhuan 的号,id 是 Alan233。

队友是 @Lynkcat 和 @RinkaSnow ,队名是 瓦来猪爪是二次元。


第一场还没有号,没打。


第二场

zpf 润了,因此只有我和 lyc 打。

开局我先看 E,然后发现题目看不大懂(?此时有人过了 G,过去一看发现是典题,直接秒了,此时 \(9\) 分钟。

回来看懂了 E,推两下式子然后发现需要二项式反演一下,贺个板子就直接上了,\(25\) 分钟过了。

\(29\) 分钟,lyc 过了另一个签到题 K。

我开 D 发现是 sb 题,直接二分然后判断负环即可,lyc J 发现是三分 sb 题。

发现负环不会判,想了一下,建虚点即可。

两个实数题,我和 lyc 都自闭了,结果发现找负环需要取 \(\log\) 不然精度爆炸。

两个人一个吃了\(5\) 发,一个吃了 \(7\) 发才过。

我去 L,lyc 在 \(134\) 分钟是过了 H,然后又过了 I 和 C。

L 不是很难,但我写了很久才过,被 Froggy 怒斥为 sb 了 /kk。

lyc 最后冲了阿拉丁题 F。

最后剩下 AB,rk 24,感觉我就是全程摆烂。


挑几个有意思的题记录一下


E \(\color{green}\bigstar\)

已知一个数 \(n\),对于所有 \(0\le i\le n\),求有多少个长度为 \(n\) 的小写字母字符串满足其中含有 \(i\) 个字串 bit

\(n\le 10^6\)

假设 \(f_i\) 表示至少 \(i\) 个字串是 bit,这个可以直接用插板法简单计算,然后答案就是二项式反演一下即可。

code


L \(\color{blue}\bigstar\)

\(n\) 个世界,每个世界都有 \(m\) 个点和一些有向边,初始在 \(1\) 号点,定义一个区间 \([l,r]\) 是合法的,需要满足遍历 \(l...r\) 的每个世界,每个世界可以走一条有向边或者不走,然后被传送到下一个世界的对应节点,遍历完后可以走到 \(m\),求最小的合法区间。

\(n\le 10^4,m\le 2\times 10^3\),边数之和 \(\le 10^6\)

考虑双指针,那么需要支持在后面加边,在前面删边。

考虑把区间里所有世界的边全部放在一个图上,边权就是所在的世界编号,那么合法的区间就是 \(1\)\(m\) 存在一条边权递增的路径。

考虑这个东西咋做,设 \(f_i\) 表示当前图中,走到 \(i\) 号点,第一条边的边权最大是多少,这样加入,删除都变得极为简单,直接维护即可。

code


第三场

这场更加摆烂,被 lyc 带飞,还是只有我们两个人。

开局看有人一分钟过了 I,然后就去冲,结果一点都不会,过了一会儿,发现那发提交被 ban 掉了。。。

心态爆炸,lyc 此时过了两个签到题,我开 J,发现题意很 hard,理解了个半天 lyc 说他去写。

开 F 发现是建圆方树然后直接判断即可,sb 牛客内存开错,我调了很久很久都是 MLE,申诉了一下然后过了。

求点双到底要不要判父亲啊。

最后开 D,想了很久一点都不会,然后直接摆烂了。

最后过了 \(6\) 个题,rk 20。


F \(\clo\)

posted @ 2022-07-31 15:23  houzhiyuan  阅读(85)  评论(1编辑  收藏  举报