Runtime Error:ゼロから始める「抱灵生活」

0.杂谈

今日运势:
粉兔可爱
进场之后 lpy 讲了一堆东西讲到了考试开始
然后旁边有一位小朋友开考不到五分钟就开始玩游戏看漫画/jy
吃完饭知道了成绩,我果然是零/kk
下午粉兔讲课芬芳不停好评

1.简易题解

A

给出数列 \(x\),求有多少个排列 \(a\) 满足 \(x\)\(a\) 中字典序最小的长度为 \(m\) 的子序列。
首先考虑 \(x_i\) 递增怎么办,很容易发现可以枚举每个没插入的数 \(O(n)\) 解决。
如果 \(x_i\) 不递增,考虑第一个下降的位置 \(k\),显然这个位置以后的 \(x_i\) 一定是 \(a\) 的后缀。
所以就是傻逼题了。

B

给定 \(n\) 个数 \(a_i\),要求支持区间对 \(x\)\(\max\) 和区间 Nim 游戏中先手第一轮可行操作数。
相信对于基础的 Nim 游戏大家都有所了解,此处不再赘述。
对于第一步,先手取第 \(i\) 堆必胜当且仅当 \(\bigoplus\limits_{j\ne i}a_j<a_i\)
\(a_i\) 在所有数 xor 和的最高位为 \(1\),这样原问题就转化成了求区间内某一位为 \(1\) 的个数。
然后区间 \(\max\) 是吉老师线段树的基本操作,此题完。

C

\(n\times m\) 的格子,有一些障碍物和目标点,问从给定起点开始滑冰(只能直线走到墙或障碍物旁停下)能否经过所有目标点。
对于一个最长无障碍连续段我们肯定是要刷干净的,所以可以看做一个点,点之间的转移就是走到端点时换方向,起点向可走的两个方向连边。
对于经过一个点,一个点只有左右和上下两种方向且必须选一个,如果两点不可达则不能同时选中,然后做 2-SAT。

2.杂题选讲

由于太菜了,所以只选了一些能听懂的/kk

1

给定两个仅含 abcdef 的字符串,可以单点修改或把所有一种字符改为另一种,求最小转换步数。
是傻逼题,直接枚举第二种操作就完了。

2

给定 \(n\) 和函数 \(f(x)=\sum\limits_{i=1}^n x\bmod\ i\),从 \(i\) 连单向边到 \(f(i)\)。求最长环长。
兔提供的乱搞做法:由于 \(x\bmod\ i\) 可以看做均匀随机分布,所以 \(f(x)\) 很像正态分布。
然后从 \(\dfrac{n(n-1)}{4}\) 附近随机就完了。

3

给定一个 \(n\times m\) 的网格,每个格子可能填有一个方向或空,计算从每格都能走出去的填充方案数。
格子之间连边,对外界建一个虚根,然后根向树计数板子糊上去就完了。

4

给定一个带权无向完全图,求所有生成树的权值(边权和)的 \(k\) 次方之和。
考虑这个东西的 EGF:它是 \(\sum\limits_{k=0}^{\infty}\left((\sum\limits_{i=1}^m w_i)^k\dfrac{z^k}{k!}\right)=\prod\limits_{i=1}^m e^{w_iz}\)
然后维护以形式幂级数为元素的矩阵求行列式即可,由于是 \(\bmod\ z^k\) 的,所以时间不用担心。

posted @ 2021-05-01 19:56  ajthreac  阅读(124)  评论(1编辑  收藏  举报