CYJian的新春虐题赛

题解:

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$了

转载于:https://www.cnblogs.com/yinwuxiao/p/10480172.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值