题意

  https://loj.ac/problem/2193

题解

  ​显然就是求 $\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \sigma_1(\gcd{(i,j)}) [\gcd(i,j)\le a]$($\sigma_1(x)$ 表示求 $x$ 的所有约数之和),看到 $\gcd$ 就知道是莫比乌斯反演基础题吧

  如果不考虑 $a$ 的限制,这就是推一遍莫反的模板题,那先不考虑,则原式变为$$\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \sigma_1(\gcd{(i,j)})$$

  根据套路枚举约数 $$\sum\limits_{k=1}^{n} \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \sigma_1(k) [\gcd(i,j)=k]$$

  显然当 $i|k, j|k$ 时,$\gcd(i,j)$ 才有可能为 $k$。所以简化式子得 $$\sum\limits_{k=1}^{n} \sum\limits_{i=1}^{\lfloor\frac{n}{k}\rfloor} \sum\limits_{j=1}^{\lfloor\frac{m}{k}\rfloor} \sigma_1(k) [\gcd(i,j)=1]$$

  把 $\sigma_1(k)$ 挪到前面,并用经典公式 $\sum\limits_{d|n} \mu(d) = [n=1]$ 对 $[\gcd(i,j)=1]$ 反演 $$\sum\limits_{k=1}^{n} \sigma_1(k)\sum\limits_{i=1}^{\lfloor\frac{n}{k}\rfloor} \sum\limits_{j=1}^{\lfloor\frac{m}{k}\rfloor} \sum\limits_{d|\gcd{(i,j)}} \mu(d)$$

  $$\sum\limits_{k=1}^{n} \sigma_1(k)\sum\limits_{i=1}^{\lfloor\frac{n}{k}\rfloor} \sum\limits_{j=1}^{\lfloor\frac{m}{k}\rfloor} \sum\limits_{d|i, d|j} \mu(d)$$

  根据套路,把 $d$ 挪到前面并改成枚举 $x$。由于限制 $d|i, d|j$,只有 $i$ 和 $j$ 都是 $d$ 的倍数时才会累加一个 $\mu(d)$。所以对于一个 $d$,$\mu(d)$ 会被累加 $\lfloor\frac{n}{kd}\rfloor \lfloor\frac{m}{kd}\rfloor$ 次(易证 $\lfloor\frac{\lfloor \frac{x}{y}\rfloor}{z}\rfloor = \lfloor\frac{\frac{x}{y}}{z}\rfloor$)。故式子转化为 $$\sum\limits_{k=1}^{n}  \sigma_1(k) \sum\limits_{d=1}^{n} \mu(d) \lfloor\frac{n}{kd}\rfloor \lfloor\frac{m}{kd}\rfloor$$

​  令 $n\le m$,则显然当 $d\gt \lfloor \frac{n}{k}\rfloor$ 时,$\lfloor \frac{n}{dk}\rfloor=0$。所以可以更改 $d$ 的上界 $$\sum\limits_{k=1}^{n}  \sigma_1(k) \sum\limits_{d=1}^{\lfloor \frac{n}{k}\rfloor} \mu(d) \lfloor\frac{n}{kd}\rfloor \lfloor\frac{m}{kd}\rfloor$$

​  根据套路,令 $T=kd$,而把 $ \sum\limits_{d=1}^{\lfloor \frac{n}{k}\rfloor}$ 乘以 $k$ 就变成了 $T$ 的枚举式,然后我们会发现 $T$ 的枚举值依次是 $k,2k,3k,...,\lfloor \frac{n}{k}\rfloor\times k$,也就是枚举一组 $k、T$ 要满足 $T$ 是 $k$ 的倍数。显然可以先枚举 $T$,然后枚举 $k$,要求 $k$ 是 $T$ 的约数。于是式子最终转化为 $$\sum\limits_{T=1}^{n} \lfloor\frac{n}{T}\rfloor \lfloor\frac{m}{T}\rfloor \sum\limits_{k|T} \sigma_1(k) \mu(\frac{T}{k}) $$

  如果没有 $a$ 的限制,这道题到此就做完了,整除分块回答询问即可

  有 $a$ 的限制的话我们就考虑离线排序回答,这样有机会使总时间复杂度仍然只是扫一遍

  我们设 $g(T) = \sum\limits_{k|T} \sigma_1(k) \mu(\frac{T}{k})$,显然当 $\sigma_1(k)\le a$ 时,才会对 $g(T)$ 产生贡献

  于是将询问按 $a$ 从小到大排序后扫一遍,$a$ 变大会使得一些 $\sigma_1(a)$ 对 $g(T)$ 产生贡献,我们就用枚举倍数的方法找到所有的 $T$,然后因为我们要动态修改 $g(T)$ 的值,还要区间询问,所以写一个常数小的树状数组即可

  处理完新产生的贡献之后回答这组询问即可

  最坏情况下所有的 $\sigma_1(d)$ 都能产生贡献。枚举所有倍数 $T$ 的复杂度为 $\sum\limits_{i=1}^{n} \frac{n}{i}\le n\log_2{n}$,因为考虑 $\frac{n}{1}+\frac{n}{2}+\frac{n}{3}+...+\frac{n}{n}$ 的值(这就是枚举的量),它显然小于 $\frac{n}{1}+\frac{n}{2}^2+\frac{n}{4}^4+\frac{n}{8}^8+...+\frac{n}{\lfloor\log_2{n}\rfloor}^{\lfloor\log_2{n}\rfloor} = n\log_2{n}$(这就是分治的过层,共 $log_2$ 层,每层 $n$ 个点,所以共 $n\log_2{n}$ 个点),所以简单得证

  对于每个枚举的倍数 $T$,更新 $g(T)$ 的时间复杂度为 $\log{n}$,所以修改部分的总复杂度是 $O(n\log^2{n})$

  每次询问需要整除分块,查询区间和的复杂度为 $O(\log{n})$,所以总复杂度为 $O(n\log^2{n} + q\sqrt{n}\log{n})$

  取模的话,如果要求答案膜 $p$,你可以一直膜 $kp(k∈Z)$,输出时再膜 $p$。所以用 unsigned int 自然溢出即可,最后输出答案时膜 $2^{31}$。

  code

【SDOI 2014】数表的更多相关文章

  1. [SDOI 2014]数表

    Description 有一张N×m的数表,其第i行第j列(1 < =i < =N,1 < =j < =m)的数值为 能同时整除i和j的所有自然数之和.给定a,计算数表中不大于 ...

  2. 解题:SDOI 2014 数表

    题面 为了好写式子,先不管$a$的限制 设$facs$为因子和,那么有 $ans=\sum\limits_{i=1}^n\sum\limits_{j=1}^mfacs(gcd(i,j))$ 再设$f( ...

  3. 「BZOJ 3529」「SDOI 2014」数表「莫比乌斯反演」

    题意 有一张 \(n\times m\) 的数表,其第\(i\)行第\(j\)列的数值为能同时整除\(i\)和\(j\)的所有自然数之和. \(T\)组数据,询问对于给定的 \(n,m,a\) , 计 ...

  4. 【BZOJ 3529】【SDOI 2014】数表

    看Yveh的题解,这道题卡了好长时间,一直不明白为什么要······算了当时太naive我现在都不好意思说了 #include<cstdio> #include<cstring> ...

  5. 【BZOJ 3531】【SDOI 2014】旅行

    因为有$10^5$个宗教,需要开$10^5$个线段树. 平时开的线段树是“满”二叉树,但在这个题中代表一个宗教的线段树管辖的区间有很多点都不属于这个宗教,也就不用“把枝叶伸到这个点上”,所以这样用类似 ...

  6. [BZOJ 3530][Sdoi 2014]数数

    阿拉~好像最近总是做到 AC 自动机的题目呢喵~ 题目的算法似乎马上就能猜到的样子…… AC 自动机 + 数位 dp 先暴力转移出 f[i][j] :表示从 AC 自动机上第 j 号节点走 i 步且不 ...

  7. BZOJ 3533 sdoi 2014 向量集

    设(x,y)为Q的查询点,分类讨论如下:1.y>0:  最大化a*x+b*y,维护一个上凸壳三分即可 2.y<0:最大化a*x+b*y  维护一个下凸壳三分即可 我们考虑对时间建出一棵线段 ...

  8. 解题:SDOI 2014 重建

    题面 做这个这个题需要稍微深入理解一点矩阵树定理:套矩阵树定理得到的东西是有意义的,它是“所有生成树边权乘积之和”(因为度数矩阵是点的边权和,邻接矩阵是边权),即$\sum_{t}\prod_{e∈t ...

  9. 【BZOJ 3530】【SDOI 2014】数数

    http://www.lydsy.com/JudgeOnline/problem.php?id=3530 上午gty的测试题,爆0了qwq 类似文本生成器那道题,把AC自动机的转移建出来,准确地说建出 ...

随机推荐

  1. 【MM系列】SAP S/4 HANA BP创建客户/供应商的一点想法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP S/4 HANA BP创建客 ...

  2. 【POJ - 3087】Shuffle'm Up(模拟)

    Shuffle'm Up 直接写中文了 Descriptions: 给定两个长度为len的字符串s1和s2, 接着给出一个长度为len*2的字符串s12. 将字符串s1和s2通过一定的变换变成s12, ...

  3. 【POJ - 3126】Prime Path(bfs)

    Prime Path 原文是English 这里直接上中文了 Descriptions: 给你两个四位的素数a,b.a可以改变某一位上的数字变成c,但只有当c也是四位的素数时才能进行这种改变.请你计算 ...

  4. win10安装tensorflow (cpu版)

    前提: 下载anaconda,然后创建一个python虚拟环境: 命令: conda create -n tf_cpu python=3.6       # (tf_cpu  是这个虚拟环境的名字) ...

  5. PHP中的接口

    对象接口 使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容. 接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方 ...

  6. 区间前k小的和(权值线段树+离散化)--2019牛客多校第7场C--砍树

    题目链接:https://ac.nowcoder.com/acm/contest/887/C?&headNav=acm 题意: 给你 n 种树,有 高度,花费和数量 ,现在问你最少需要花多少钱 ...

  7. 纯CSS3绘制神奇宝贝伊布动画特效

    在线演示       本地下载

  8. Linux: cp 复制文件、文件夹到文件夹

    参数 a 该选项通常在拷贝目录时使用.它保留链接.文件属性,并递归地拷贝目录,其作用等于dpR选项的组合. d 拷贝时保留链接.    f 删除已经存在的目标文件而不提示.    i 和f选项相反,在 ...

  9. JsonObject、JsonArray操作json的个人总结

    介绍 JsonObject.JsonArray之前,先介绍下JsonConfig JsonConfig: setClassMap(Map classMap)设置json属性类型,上json里的其中值为 ...

  10. selenium自动化测试工具模拟登陆爬取当当网top500畅销书单

    selenium自动化测试工具可谓是爬虫的利器,基本动态加载的网页都能抓取,当然随着大型网站的更新,也出现针对selenium的反爬,有些网站可以识别你是否用的是selenium访问,然后对你加以限制 ...