[SDOI2014]数表

题面

∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) ≤ a ] ∗ g c d ( i , j ) \sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)\le a]*gcd(i,j) i=1nj=1m[gcd(i,j)a]gcd(i,j)

题解

看到式子明显要莫比乌斯反演,于是变成:
∑ x = 1 m i n ( n , m ) ⌊ n x ⌋ ⌊ m x ⌋ ∑ d ∣ x a μ ( x d ) d \sum_{x=1}^{min(n,m)}\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{x}\rfloor\sum_{d|x}^{a}\mu(\frac{x}{d})d x=1min(n,m)xnxmdxaμ(dx)d
那么一般的题做到这里肯定就是要线性筛 ∑ d ∣ x a μ ( x d ) d \sum_{d|x}^{a}\mu(\frac{x}{d})d dxaμ(dx)d了,但是这里筛不了,他不是积性的,于是强行将询问按a排序,变成离线做法,a不断递增的时候只需要跟着a更新 ∑ d ∣ x a μ ( x d ) d \sum_{d|x}^{a}\mu(\frac{x}{d})d dxaμ(dx)d的值即可,每次查询前缀和有点麻烦,这时候用一个树状数组维护即可。

或者其实不用树状数组,把每次前缀和的询问从小到大排序,然后依次返回(感觉这样写会累死,并且复杂度差不多)

感悟

这道题我出过,没想到在这里被撞了(稍微有一点不同,近乎一样),但是我出的题没有想去离线做,而是直接固定a的大小,感觉这题最大的创新就是这个树状数组+数论吧,SD的数论题真的有意思,建议刷数论着重写SD的题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值