cf103202I. Rise of Shadows

题目描述
题解

很不会同余方程呜呜呜。

可以看成追击问题,于是我们经过化一些式子后能够得到个不等式:

如果对于一个整数 k ∈ [ 0 , H M ) k \in [0,HM) k[0,HM) ,存在整数 x x x ,满足

x H M − A ≤ k ( H − 1 ) ≤ x H M + A xHM-A \le k(H-1) \le xHM+A xHMAk(H1)xHM+A

那么这个 k k k 就满足要求

因此,有 − A ≤ k ( H − 1 ) − x H M ≤ A -A \le k(H-1)-xHM \le A Ak(H1)xHMA

若我们规定,对 H M HM HM 取模的值的范围为 [ − H M / 2 , H M / 2 ] [-HM/2,HM/2] [HM/2,HM/2] ,故就要满足

− A ≤ k ( H − 1 ) m o d    H M ≤ A -A \le k(H-1) \mod HM \le A Ak(H1)modHMA

因此,设 g = gcd ⁡ ( H − 1 , H M ) g=\gcd(H-1,HM) g=gcd(H1,HM) ,根据剩余系,对于 k ∈ [ 0 , H M / g ) k \in [0,HM/g) k[0,HM/g) ,有 k ( H − 1 ) m o d    H M = . . . − 2 g , − g , 0 , g , 2 g , . . . k(H-1) \mod HM= ...-2g,-g,0,g,2g,... k(H1)modHM=...2g,g,0,g,2g,... ,而且是一一对应的。

因此,存在 A / g × 2 + 1 A/g \times 2+1 A/g×2+1 k k k ,满足 k ( H − 1 ) m o d    H M k(H-1) \mod HM k(H1)modHM [ − A , A ] [-A,A] [A,A] 之间。

而有 g g g 轮这样的 k k k 的取值,故答案为 g × ( A / g × 2 + 1 ) g \times (A/g \times 2+1) g×(A/g×2+1)

然后就是需要特判 A = H M / 2 A=HM/2 A=HM/2 的情况就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值