jzptab

∑i=1n∑j=1mlcm(i,j)∑i=1n∑j=1mijgcd⁡(i,j)∑d=1nd∑i=1nd∑j=1mdij[gcd⁡(i,j)=1]∑d=1nd∑k=1ndk2μ(k)∑i=1nkdi∑j=1mkdjT=kd,f(n)=∑i=1ni∑T=1nf(nT)f(mT)(T∑k∣Tμ(k)k)设g(n)=n∑d∣nμ(d)d先令g(n)=g(n)ng(1)=1,g(p)=μ(1)+μ(p)p=1−p,g(pk,k≥2)=1−p同时是积性函数,可以O(n)求得,最后再乘上数组下标即可\sum_{i = 1} ^{n} \sum_{j = 1} ^{m} lcm(i, j)\\ \sum_{i = 1} ^{n} \sum_{j = 1} ^{m} \frac{ij}{\gcd(i, j)}\\ \sum_{d = 1} ^{n} d \sum_{i = 1} ^{\frac{n}{d}} \sum_{j = 1} ^{\frac{m}{d}} ij[\gcd(i, j) = 1]\\ \sum_{d = 1} ^{n} d \sum_{k = 1} ^{\frac{n}{d}}k ^ 2 \mu(k) \sum_{i = 1} ^{\frac{n}{kd}} i \sum_{j = 1} ^{\frac{m}{kd}} j\\ T = kd, f(n) = \sum_{i =1} ^{n} i \\ \sum_{T = 1} ^{n} f(\frac{n}{T}) f(\frac{m}{T})\left(T \sum_{k \mid T} \mu(k)k\right)\\ 设g(n) = n\sum_{d \mid n} \mu(d) d\\ 先令g(n) = \frac{g(n)}{n}\\ g(1) = 1, g(p) = \mu(1) + \mu(p)p = 1 -p, g(p ^ k, k \geq 2) = 1 - p\\ 同时是积性函数,可以O(n)求得, 最后再乘上数组下标即可 i=1∑n​j=1∑m​lcm(i,j)i=1∑n​j=1∑m​gcd(i,j)ij​d=1∑n​di=1∑dn​​j=1∑dm​​ij[gcd(i,j)=1]d=1∑n​dk=1∑dn​​k2μ(k)i=1∑kdn​​ij=1∑kdm​​jT=kd,f(n)=i=1∑n​iT=1∑n​f(Tn​)f(Tm​)⎝⎛​Tk∣T∑​μ(k)k⎠⎞​设g(n)=nd∣n∑​μ(d)d先令g(n)=ng(n)​g(1)=1,g(p)=μ(1)+μ(p)p=1−p,g(pk,k≥2)=1−p同时是积性函数,可以O(n)求得,最后再乘上数组下标即可

#include <bits/stdc++.h>using namespace std;const int N = 1e7 + 10, mod = 1e8 + 9;int g[N], prime[N], cnt;bool st[N];void init() {g[1] = 1;for (int i = 2; i < N; i++) {if (!st[i]) {prime[++cnt] = i;g[i] = 1 - i + mod;}for (int j = 1; j <= cnt && 1ll * i * prime[j] < N; j++) {st[i * prime[j]] = 1;if (i % prime[j] == 0) {g[i * prime[j]] = g[i];break;}g[i * prime[j]] = 1ll * g[i] * g[prime[j]] % mod;}}for (int i = 1; i < N; i++) {g[i] = (1ll * i * g[i] % mod + g[i - 1]) % mod;}
}int calc1(int n) {return 1ll * n * (n + 1) / 2 % mod;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);init();int T, n, m;scanf("%d", &T);while (T--) {scanf("%d %d", &n, &m);int ans = 0;if (n > m) {swap(n, m);}for (int l = 1, r; l <= n; l = r + 1) {r = min(n / (n / l), m / (m / l));int cur = (g[r] - g[l - 1] + mod) % mod;ans = (ans + 1ll * calc1(n / l) * calc1(m / l) % mod * cur % mod) % mod;}printf("%d\n", ans);}return 0;
}

#2693. jzptab相关推荐

  1. 莫比乌斯进阶:bzoj 2693 jzptab(Mobius)

    传送门 题解: 第四行μ(k)后还要乘一个i*j 实在看不下去以前打的巨丑的LaTex公式,于是重新打一遍顺便复习一下.(那个D=d*k的那一杠是word的输入符,请不要介意...) 最后一行括号里那 ...

  2. 一句话题解(20180210~)

    2.9 BZOJ 2006 [NOI2010]超级钢琴.这道题目几天之前就做了.做法是固定右端点,左端点在ST表上走,走法其实就是笛卡尔树的走法.完结撒花! BZOJ 1218 [HNOI2003]激 ...

  3. [颓废史]蒟蒻的刷题记录

    QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...

  4. BZOJ 2154 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演,经典好题)(Luogu P1829)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P1829 [国家集训队]Crash的数字表格 / JZPTAB(反演,经典好题) Problem S ...

  5. P1829 [国家集训队]Crash的数字表格 / JZPTAB

    P1829 [国家集训队]Crash的数字表格 / JZPTAB 题意: 求∑i=1n∑j=1mlcm(i,j)\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)∑i=1n​∑j ...

  6. P1829 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演)

    [国家集训队]Crash的数字表格 / JZPTAB 题目描述 今天的数学课上,Crash 小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数 a a a 和 b b ...

  7. [BZOJ2693]jzptab

    Description 求\(\sum\limits_{i=1}^n\sum\limits_{j=1}^m lcm(i,j)\),答案模1e9+9输出,多组询问 Input 一个正整数T表示数据组数 ...

  8. 【bzoj2693】jzptab 莫比乌斯反演+线性筛

    题目描述 输入 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M 输出 T行 每行一个整数 表示第i组数据的结果 样例输入 1 4 5 样例输出 122 题解 莫比乌斯反演+线性筛 由 ...

  9. BZOJ2154: Crash的数字表格 BZOJ2693: jzptab

    [传送门:BZOJ2154&BZOJ2693] 简要题意: 给出n,m,求$\sum_{i=1}^{n}\sum_{j=1}^{m}LCM(i,j)$ 题解: 莫比乌斯反演(因为BZOJ269 ...

最新文章

  1. Windows下通过Python 3.x的ctypes调用C接口
  2. HDOJ--4821--String【弦hash】
  3. matlab的svm工具箱的安装
  4. Angular 界面元素的条件渲染
  5. 使用git命令行将某个指定文件回退到前几个版本
  6. 商户网站使用第三方支付的大致原理和实现
  7. PHP苹果不给上架,苹果商城上架拒绝
  8. PAT乙级 数素数(20)
  9. shift and算法
  10. mktime()的格式
  11. 我的if else代码纯净无暇,一个字也不能简化
  12. 使用java自带的方式调用打印机打印图片
  13. 2017关于自学PHP的方法
  14. 【跨语言剽窃检测】文本相似度分析之一
  15. android oreo 老机型,三年的老机型,一加手机1也有安卓8.0了!
  16. 带你用 Python 实现自动化群控(入门篇)
  17. Centos7 编译 php5.6出错
  18. sql取上个月年月_SQL Server 取日期时只要年月或年月日
  19. C++/Qt读取二进制STL文件
  20. PanDownload回归!70MB/s!

热门文章

  1. 自定义dialog弹窗html,自定义H5页面dialog弹窗
  2. mysql数据库rp集群,使用MySQL-Cluster搭建MySQL数据库集群
  3. Pytorch快速入门笔记
  4. 战队口号霸气押韵8字_高考励志班级口号霸气押韵大全
  5. 第6章 C控制语句:循环
  6. 知乎高赞:这个开挂神器简直了!
  7. 数据这么多,且看R语言怎么处理!
  8. android 栏目编辑,android – 编辑文本导致内存泄漏
  9. android编译的错误日志,Android Studio:编译器错误输出窗口在哪里?
  10. java 枚举工厂_在Java中使用枚举工厂,最佳做法?