bzoj 3994: [SDOI2015]约数个数和

题目描述

给你 N,MN,M,求i=1Nj=1Md(ij)\sum_{i=1}^{N}\sum_{j=1}^{M}d(ij)你需要回答 TT 个询问。1N,M,T50 0001\leq N,M,T\leq50\ 000

Solution

今有结论(*)d(ij)=xiyj[gcd(x,y)=1]d(ij)=\sum_{x|i}\sum_{y|j}[\gcd(x,y)=1]\tag{*}至于为什么,以后再写。

i=1Nj=1Md(ij)=i=1Nj=1Mxiyj[gcd(x,y)=1]=i=1Nj=1Mxiyjdgcd(x,y)μ(d)=d=1min(N,M)(dxxNxiiN1)(dyyMyjjM1)=d=1min(N,M)(dxxNNx)(dyyMMy)\begin{aligned}\sum_{i=1}^N\sum_{j=1}^Md(ij)&=\sum_{i=1}^N\sum_{j=1}^M\sum_{x|i}\sum_{y|j}[\gcd(x,y)=1]\\ &=\sum_{i=1}^N\sum_{j=1}^M\sum_{x|i}\sum_{y|j}\sum_{d|\gcd(x,y)}\mu(d)\\ &=\sum_{d=1}^{\min(N,M)}(\sum_{d|x}^{x\leq N}\sum_{x|i}^{i\leq N}1)(\sum_{d|y}^{y\leq M}\sum_{y|j}^{j\leq M}1)\\ &=\sum_{d=1}^{\min(N,M)}(\sum_{d|x}^{x\leq N}\lfloor\frac Nx\rfloor)(\sum_{d|y}^{y\leq M}\lfloor\frac My\rfloor)\end{aligned}
O(n)O(n) 预处理后面括号里的内容。

posted @ 2019-07-09 08:39  TeacherDai  阅读(102)  评论(0)    收藏  举报