【UR #5】怎样跑得更快 题解

Description

传送门

Solution

颓式。

∑ j = 1 n gcd ⁡ ( i , j ) c × lcm ( i , j ) d × x j ≡ b i ( m o d p ) i d j d ∑ j = 1 n gcd ⁡ ( i , j ) c − d x j ≡ b i ( m o d p ) ∑ j = 1 n ( ∑ d ∣ i , d ∣ j f d ) x j ≡ b i ′ ( m o d p ) ∑ d ∣ i f d ∑ d ∣ j x j ≡ b i ′ ( m o d p ) ∑ d ∣ i f d F ( d ) ≡ b i ′ ∑ d ∣ i G ( d ) ≡ b i ′ \sum_{j=1}^n \gcd(i,j)^c \times \text{lcm}(i,j)^d \times x_j \equiv b_i \pmod p \\ i^d j^d\sum_{j=1}^n \gcd(i,j)^{c-d} x_j \equiv b_i \pmod p \\ \sum_{j=1}^n \left(\sum_{d|i,d|j} f_d\right) x_j \equiv b'_i \pmod p \\ \sum_{d|i} f_d \sum_{d|j} x_j \equiv b'_i \pmod p \\ \sum_{d|i} f_d F(d) \equiv b_i' \\ \sum_{d|i} G(d) \equiv b'_i j=1ngcd(i,j)c×lcm(i,j)d×xjbi(modp)idjdj=1ngcd(i,j)cdxjbi(modp)j=1ndi,djfdxjbi(modp)difddjxjbi(modp)difdF(d)bidiG(d)bi

其中

x c − d = ∑ i ∣ x f i F ( d ) = ∑ d ∣ j x j G ( d ) = f d F ( d ) x^{c-d}=\sum_{i|x} f_i \\ F(d)=\sum_{d|j} x_j \\ G(d)=f_d F(d) xcd=ixfiF(d)=djxjG(d)=fdF(d)

通过一次反演得到 G G G,再通过一次反演得到 F F F,再反演得到 x x x,然后就做完了。总复杂度 O ( q n ln ⁡ n ) O(qn \ln n) O(qnlnn)

三次反演太离谱了,这题太神仙了 ⋯ ⋯ \cdots \cdots 神 yzh 曰: “看完题解之后你觉得都懂了,连起来看就觉得这题好奇怪啊。”

Code

十分好写,就不放了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值