博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mobius反演定理-BZOJ2154
阅读量:7124 次
发布时间:2019-06-28

本文共 1346 字,大约阅读时间需要 4 分钟。

This article is made by Jason-Cow.
Welcome to reprint.
But please post the article's address.

 

莫比乌斯定理(未完待续......):

形式1:

形式2:

 

引理:

 

 

证明1:

      右边=带入左边等式,得              

              

      

      

          当且仅当 : ,即时,上式非

        

   所以,成立。

 bzoj2154

 

 

时间复杂度

 换元:令

 

/*

             

             

*/

此题的精髓就一个字,

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 using namespace std;12 #define file(x) freopen(x".in","r",stdin),freopen(x".out","w",stdout)13 14 const int mod=20101009,maxn=1e7+10;15 int f[maxn],p[maxn],flag[maxn],cnt,S[maxn];16 void init(int n,int m){17 f[1]=1;18 for(int i=2;i<=n;i++) {19 if(!flag[i])p[++cnt]=i,f[i]=(1-i)%mod;20 for(int j=1;j<=cnt && i*p[j]<=n;j++) {21 flag[i*p[j]]=1;22 if(i%p[j]==0){f[i*p[j]]=f[i]%mod;break;}23 f[i*p[j]]=((long long)(f[i]%mod)*(f[p[j]]%mod))%mod;24 }25 }26 for(int i=1;i<=m;i++)S[i]=((S[i]%mod)+((S[i-1]+i)%mod))%mod;27 }28 29 int main(){30 int n,m;scanf("%d%d",&n,&m);if(n>m)swap(n,m);31 init(n,m);32 int ans=0;33 for(int Q=1;Q<=n;Q++)34 ans=(ans+(((Q%mod)*(long long)f[Q]*(((long long)S[n/Q]*S[m/Q])%mod))%mod)%mod)%mod;35 printf("%d\n",(ans+mod)%mod);36 return 0;37 }

 

 

 

f(n)=d|nμ(d)F(nd)=d|nμ(d)k|ndf(k)=k|nf(k)d|nkμ(d)

 

转载于:https://www.cnblogs.com/JasonCow/p/6550441.html

你可能感兴趣的文章
adobe flash player 安装失败
查看>>
图论--拓扑排序模板
查看>>
LeetCode10 Indexed tree
查看>>
c# webbrowser.documentstream保存html文件 解决gb2312编码 存下后出现乱码的问题
查看>>
Oracle数据控制语言(DCL)
查看>>
第27天:js-表单获取焦点和数组声明遍历
查看>>
算法-插入排序
查看>>
jndi配置数据源
查看>>
20145234黄斐《Java程序设计》第十周学习总结
查看>>
linux 磁盘io监控
查看>>
Java中instanceof关键字的用法
查看>>
单链表的创建,插入,删除等操作——精简版
查看>>
PHP访问Oracle数据库
查看>>
Jmeter 线程之间传递变量
查看>>
Python内置函数清单
查看>>
Learning Entity Framework(1)
查看>>
Learning EntityFramework(3)
查看>>
bzoj 3028 食物——生成函数
查看>>
MongoDB资料汇总
查看>>
写给运维兄弟
查看>>