A - 打字练习
出题:memset0
送分模拟题,按题意模拟即可。
需要注意的是对退格键的判断,如果光标已经在行首,则直接忽略被读入的退格键。
B - 小猪佩奇爬树
出题:_QAQ
维护所有相同节点颜色的链并,若不构成一条链则显然答案为
若仅包含
否则即为链的
C - 小猪佩奇玩游戏
出题:_QAQ & SPJ:memset0
容易发现可以将
举个栗子,对于
容易发现这些组别之间互不干扰且互不影响,所以只需要计算每个组别独立的期望值并进行相加即可
那么最终答案即为
其中
先来计算
对于
显然
考虑怎么算
我们考虑一个等价类问题,枚举所有关于
总复杂度为
D - 赛车游戏
出题:memset0
一道有意思的图论题。
对于一个点
剩下的图一定是一个 DAG。因为如果有环,必定可以形成多条起点到终点的路径,使得无解。
考虑如何给一个 DAG 赋边权:由于每条
时间复杂度即 SPFA 的时间复杂度
此题的思路和代码都非常清新,只是 SPJ 和构造数据非常恶心,出题人表示体验极差。
E - 小猪佩奇学数学
出题:_QAQ
原式等价于
即
考虑前半部分式子
根据
所以该式子等价于
即
根据二项式定理,即
对于后半部分式子容易发现
即
由单位根反演
代入原式,有
即
发现后半部分很像二项式定理,即
那么原式等价于
发现后半部分为关于
类似我们考虑将
那么原式等价于
可以看作卷积的形式,那么只需要一次 NTT 就可以带走了,复杂度为
F - 美德的讲坛
出题:Isonan
算法1
我会爆搜!
复杂度
算法2
设
我们把
容易发现组内两两异或和都是
对于
我们只要找到最大的组输出就行了。
复杂度
算法3
对于一般情况,我们发现相邻组之间是有可能产生
那么我们的问题变成了:
现在有两组点,左边每个点有一个权值
我们发现这个东东有点二分图的味道。那么是不是可以网络流呢?!
我们用如下方法建图:
源点向左边所有点连边,流量为
当
右边所有点向汇点连边,流量为
我们考虑这个图的最小割的意义。
如果
那么我们要求的就是总点数-最小割。
复杂度
算法4
我们发现连边可以用
复杂度
(不是很会分析复杂度,大概是这样吧)
算法5
由于最大流=最小割,我们考虑从最大流的角度入手。
我们发现这个图的最大流也就是保留
我们可以把这个问题搬到
把所有数丢到
设
以下用
当
此时答案就是
当
当
或
时,答案显然是
否则,以
为例。
我们发现我们只需要额外考虑
答案即为
这样基本就做完了。
我们发现单次修改的时候只会有
复杂度