CYJian的新春虐题赛

时间:2022-02-03 03:36:42

题解:

t1:

算了一下发现乘法也是可以莫比乌斯反演的

然后就直接对原式莫比乌斯反演了

大概加法是$\mu {(i)}*f(i)$ 乘法就是$f(i)^{\mu {(i)}}$

然后这个算法成功达到$nlog^2$

两个log里面都加了除法分块依旧没卡过

大概可以通过记忆化一下达到一个log但这题空间就8mb不太想写

为啥大家的做法都是0~1个log啊

t2:

把中间空行删了这个是基本套路

然后就是网络流的建图

大概就是同一列上下连相邻边,行相同列相邻再连一条边

我感觉我算的复杂度这样跑网络流就能过了

题解的费用流的复杂度好奇怪。。。

当然由于只有0/1边所以spfa可以替换成0/1bfs(不过复杂度应该是少一个log呀)

t3:

和题解做法不太一样

直接打了个表

然后高阶差分了一下

发现是常数列

所以这个东西应该有通项而且最高次数是k-1了

然后就拉格朗日插值一下了

通过记忆化一些东西就可以做到做$n^2$次了 加上求逆元$n^2logn$

题解的做法也比较简单

考虑把那个式子化成从上一行递推

会发现可以列成乘上$(1+2x+2x^2+2x^3+...)$

这个套个ntt+快速幂就行了

$n*log^2n$的 好像比拉格朗日插值快不到哪里去

t4:

发现考虑组合数这个不太好做

然后变成dp过去

发现可以矩阵优化然后矩阵还是个循环矩阵

于是复杂度就可以$k^2logn$了