CF1485D Multiples and Power Differences 题解

一道思维题。


首先题目上有 1 ≤ b i , j ≤ 16 1 \leq b_{i,j} \leq 16 1bi,j16,而要求 b i , j ∣ a i , j b_{i,j} \mid a_{i,j} bi,jai,j,因此我们可以求一下 [ 1 , 16 ] [1,16] [1,16] 内所有整数的 lcm ⁡ \operatorname{lcm} lcm

lcm ⁡ ( 1 , 2 , . . . , 16 ) = 720720 < 1000000 \operatorname{lcm}(1,2,...,16)=720720<1000000 lcm(1,2,...,16)=720720<1000000

因此我们可以考虑对要求的 a i , j a_{i,j} ai,j 做一个黑白染色(就类似于国际象棋的棋盘),黑色格子旁边全是白色格子,白色格子旁边全是黑色格子。

对于所有黑色格子,直接填上 720720 就好,对于白色格子,可以考虑暴力枚举差值 k 4 k^4 k4,然后判断结果是否能够整除 b i , j b_{i,j} bi,j

由于 3 2 4 > 1000000 32^4>1000000 324>1000000,因此复杂度为 O ( 31 n m ) O(31nm) O(31nm)

Code:Github CodeBase-of-Plozia CF1485D Multiples and Power Differences.cpp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值