推导:

设d=gcd(i,j)

利用莫比乌斯函数的性质

令sum(x,y)=(x*(x+1)/2)*(y*(y+1)/2)

令T=d*t

设f(T)=

T可以分块。又由于μ是积性函数,积性函数的约束和仍是积性函数,所以f也是积性函数,可以O(n)线性筛求得。总时间复杂度为

具体筛法看代码。

代码:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5. #define mod 100000009
  6. #define _min(a,b) a>b?b:a
  7. #define ll long long
  8. inline char nc(){
  9. static char buf[],*p1=buf,*p2=buf;
  10. if(p1==p2){
  11. p2=(p1=buf)+fread(buf,,,stdin);
  12. if(p1==p2)return EOF;
  13. }
  14. return *p1++;
  15. }
  16. inline void read(int& x){
  17. char c=nc();
  18. for(;c<''||c>'';c=nc());
  19. for(x=;c>=''&&c<='';x=x*+c-,c=nc());
  20. }
  21. int len;
  22. char s[];
  23. inline void print(ll x){
  24. if(!x){
  25. putchar('');putchar('\n');
  26. return;
  27. }
  28. for(len=;x;x/=)s[++len]=x%;
  29. for(;len;len--)putchar(s[len]+);
  30. putchar('\n');
  31. }
  32. inline int sum(ll x,ll y){
  33. return (x*(x+)/%mod)*(y*(y+)/%mod)%mod;
  34. }
  35. int T,i,j,k,n,m,ma,num,p[],x,a[],b[],ans;
  36. ll f[];
  37. bool v[];
  38. int main()
  39. {
  40. read(T);
  41. for(i=;i<=T;i++){
  42. read(a[i]);read(b[i]);
  43. if(a[i]>b[i]){k=a[i];a[i]=b[i];b[i]=k;}
  44. if(a[i]>ma)ma=a[i];
  45. }
  46. f[]=;
  47. for(i=;i<=ma;i++){
  48. if(!v[i]){
  49. p[++num]=i;
  50. f[i]=-(1LL*i*(i-)%mod);
  51. }
  52. for(j=;j<=num&&p[j]*i<=ma;j++){
  53. v[p[j]*i]=;
  54. if(i%p[j])f[i*p[j]]=f[i]*f[p[j]]%mod;else{
  55. f[i*p[j]]=f[i]*p[j]%mod;
  56. break;
  57. }
  58. }
  59. }
  60. for(i=;i<=ma;i++)f[i]=(f[i]+f[i-])%mod;
  61. for(k=;k<=T;k++){
  62. ans=;
  63. for(i=;i<=a[k];i=j+){
  64. j=_min(a[k]/(a[k]/i),b[k]/(b[k]/i));
  65. ans=(ans+(f[j]-f[i-])*sum(a[k]/i,b[k]/i)%mod)%mod;
  66. }
  67. print((ans+mod)%mod);
  68. }
  69. return ;
  70. }

bzoj2693

bzoj2693--莫比乌斯反演+积性函数线性筛的更多相关文章

  1. BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常

    求 $\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\mu(gcd(i,j))^2$   $\Rightarrow \sum_{d=1}^{n}\mu(d)^2\sum_{i ...

  2. 积性函数&线性筛&欧拉函数&莫比乌斯函数&因数个数&约数个数和

    只会搬运YL巨巨的博客 积性函数 定义 积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数. 完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数 ...

  3. [模板] 积性函数 && 线性筛

    积性函数 数论函数指的是定义在正整数集上的实或复函数. 积性函数指的是当 \((a,b)=1\) 时, 满足 \(f(a*b)=f(a)*f(b)\) 的数论函数. 完全积性函数指的是在任何情况下, ...

  4. BZOJ4804 欧拉心算(莫比乌斯反演+欧拉函数+线性筛)

    一通套路后得Σφ(d)μ(D/d)⌊n/D⌋2.显然整除分块,问题在于怎么快速计算φ和μ的狄利克雷卷积.积性函数的卷积还是积性函数,那么线性筛即可.因为μ(pc)=0 (c>=2),所以f(pc ...

  5. BZOJ 2693: jzptab 莫比乌斯反演 + 积性函数 +筛法

    Code: #include<bits/stdc++.h> #define ll long long #define M 10001000 #define maxn 10200100 #d ...

  6. Bzoj 2818: Gcd 莫比乌斯,分块,欧拉函数,线性筛

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 3241  Solved: 1437[Submit][Status][Discuss ...

  7. 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记

    最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...

  8. P6222 「简单题」加强版 莫比乌斯反演 线性筛积性函数

    LINK:简单题 以前写过弱化版的 不过那个实现过于垃圾 少预处理了一个东西. 这里写一个实现比较精细了. 最后可推出式子:\(\sum_{T=1}^nsum(\frac{n}{T})\sum_{x| ...

  9. bzoj 2693: jzptab 线性筛积性函数

    2693: jzptab Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 444  Solved: 174[Submit][Status][Discus ...

随机推荐

  1. 【读书】PHP程序员要读的书目(不断完善中)

    本文地址 分享提纲: 1. PHP 2. Linux 3. Apache/Nginx 4. Mysql 5.设计模式/架构 6. 缓存并发 7. 其他语言 8. 代码基础 9. 大前端 10. 管理生 ...

  2. [转载]敏捷开发之Scrum扫盲篇

    现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP...      为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述S ...

  3. Linux基础介绍【第七篇】

    linux用户分类 超级用户:UID=0,root 普通用户:UID 500起,由超级用户或具有超级用户权限的用户创建的用户. 虚拟用户:UID 1-499,为了满足文件或服务启动的需要而存在,一般都 ...

  4. 通过几个Hello World感受.NET Core全新的开发体验

    2016年6月27日,这是一个特殊的日子,微软全新的.NET开发平台.NET Core的RTM版本正式发布.我个人将.NET Core的核心特性归结为三点,它们的首字母组成一个非常好记的简称——COM ...

  5. 像黑客一样使用 Linux 命令行

    前言 之前在博客园看到一篇介绍 IntelliJ IDEA 配置的文章,它里面用的是 gif 动态图片进行展示,我觉得很不错.所以在我今天以及以后的博文中,我也会尽量使用 gif 动图进行展示.制作 ...

  6. 如何从本地导入.nupkg文件

    买了本asp.net mvc4高级编程 里面的源码下载下来是.nupkg后缀的文件,不知道怎么引入到项目中, baidu无果,只好google,可怜我英语四级都难的人,不过所幸还是找到了方法: htt ...

  7. Spring集成MyBatis

    本文原创,原文地址为http://www.cnblogs.com/fengzheng/p/5045105.html 如果觉得Hibernate不够灵活,可以尝试用Mybatis.相比于Hibernat ...

  8. svn diff 详解

    UI版: 如果多人编辑同一段代码,常常容易出现冲突的情况: 如果出现冲突,我们如何解决他呢? 1 可以选择使用自己的文件mime file,也可以使用 他们的文件 their file 2 解决冲突, ...

  9. node.js里npm install --save 与 npm install --save-dev 的区别

    在package.json可以看到一个放在package.json 的dependencies , 一个放在devDependencies里面. 目前找到的一些解答:真正跑在用户浏览器中的代码,比如j ...

  10. libuv源码分析前言

    Libevent,libev,libuv三者的区别所在? libevent提供了全套解决方案(事件库,非阻塞IO库,http库,DNS客户端),然而libevent使用全局变量,导致非线程安全.它的w ...