3561: DZY Loves Math VI

Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 503  Solved: 333
[Submit][Status][Discuss]

Description

给定正整数n,m。求
 
 

Input

一行两个整数n,m。

Output

一个整数,为答案模1000000007后的值。

Sample Input

5 4

Sample Output

424

HINT

数据规模:

1<=n,m<=500000,共有3组数据。

Source

By Jcvb

莫比乌斯反演
http://blog.csdn.net/lych_cys/article/details/50721642?locationNum=1&fps=1

 #include<bits/stdc++.h>
#define ll long long
#define mod 1000000007
#define N 500001
using namespace std;
int n,m,cnt,mo[N],p[N>>],vis[N];ll a[N],sum[N],ans;
void predeal(){
mo[]=;
for(int i=;i<N;i++){
if(!vis[i]){mo[i]=-;p[++cnt]=i;}
for(int j=;j<=cnt&&i*p[j]<N;++j){
vis[i*p[j]]=;
if(i%p[j])mo[i*p[j]]=-mo[i];
else{mo[i*p[j]]=;break;}
}
}
}
int quick(int a,int b){
int ret=;
while(b){
if(b&)ret=1ll*a*ret%mod;
a=1ll*a*a%mod;b>>=;
}
return ret;
}
int main(){
scanf("%d%d",&n,&m);predeal();if(n>m)swap(n,m);
for(int i=;i<N;i++)a[i]=;
for(int i=;i<=n;i++){
ll res=;
for(int j=;j*i<=m;++j)
a[j]=a[j]*j%mod,sum[j]=(sum[j-]+a[j])%mod;
for(int j=;j*i<=n;++j)
if(mo[j])res=(res+mo[j]*a[j]*a[j]%mod*sum[n/i/j]%mod*sum[m/i/j]%mod)%mod;
ans=(ans+res*quick(i,i)%mod)%mod;
}
ans<?ans+=mod:;printf("%lld\n",ans);
return ;
}

最新文章

  1. 【前端】原生event对象和jquery event对象的区别
  2. mediaplayer与surfaceView,无法播放问题
  3. Cannot install NodeJs: /usr/bin/env: node: No such file or directory
  4. Activity Lifecycle
  5. mvc无法找到资源
  6. apache .htaccess 伪静态重定向,防盗链 限制下载...
  7. jQuery Ajax 实例 具体介绍$.ajax、$.post、$.get的使用
  8. asp.net出现正在中止线程解决方案
  9. 第十节,While循环和for循环
  10. python脚本程序,传入参数*要用单引号&#39;*&#39;
  11. [转帖]Oracle 各个版本的升级路线图
  12. LOJ 3049: 洛谷 P5284: 「十二省联考 2019」字符串问题
  13. HTTP请求协议
  14. NSOperation、NSOperationQueue(III)
  15. JS添加/移除事件
  16. Ubuntu 录制视频并制作成gif图
  17. [UE4]工程设置:自动捕获鼠标、通过代码设置鼠标显示隐藏、输入模式、编译时自动保存
  18. csu 1356 Catch bfs(vector)
  19. 20155336 2016-2017-2 《Java程序设计》第三周学习总结
  20. 2_python之路之多级菜单

热门文章

  1. centos 开放端口
  2. tomcat下的web.xml和项目中的web.xml
  3. JavaScript 轮播图实例
  4. 用Vue.js开发微信小程序:开源框架mpvue解析
  5. 从微软MVP到女儿开学--2017前半年小结
  6. 记一次将公司网站http换成https
  7. fetch简明学习
  8. 老男孩python学习之作业二---三级菜单
  9. CWMP开源代码研究——stun的NAT穿透
  10. hdu1018 Big Number---N!的位数