博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 2693 jzptab ——莫比乌斯反演
阅读量:6975 次
发布时间:2019-06-27

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

同BZOJ 2154 但是需要优化

$ans=\sum_{d<=n}d*\sum_{i<=\lfloor n/d \rfloor} i^2 *\mu(i)* Sum(\lfloor \frac {n}{i*d} \rfloor,\lfloor \frac {m}{i*d} \rfloor)$

如果我们设$T=i*d$

$ans=\sum_{T<=n} Sum(\lfloor \frac {n}{T}\rfloor,\lfloor \frac {m}{T}\rfloor)\sum_{i \mid T} T*i*\mu(i)$

如果我们能计算出 $\sum_{i \mid T} T*i*\mu(i)$的前缀和 我们就可以在\Theta (n)的时间内解决这个问题

它是积性函数,当$pr[j] \nmid i$的时候,新加入的$pr[j]$对$\mu$没有贡献(均为0)只有$T$的部分发生了改变所以乘一个$pr[j]$就可以了

 

然后就可以$\Theta (T\sqrt n)$解决了

#include 
#include
#include
#include
using namespace std;#define F(i,j,k) for (int i=j;i<=k;++i)#define D(i,j,k) for (int i=j;i>=k;--i)#define ll long long#define md 100000009#define maxn 10000005 int n,m,t,h[maxn],pr[maxn],top=0;bool vis[maxn]; void init(){ memset(vis,false,sizeof vis); h[1]=1; F(i,2,maxn-1) { if (!vis[i]) { pr[++top]=i; h[i]=((i-(ll)i*i)%md+md)%md; } F(j,1,top) { if ((ll)i*pr[j]>=maxn) break; vis[i*pr[j]]=true; if (i%pr[j]==0) { h[i*pr[j]]=((ll)h[i]*pr[j])%md; break; } h[i*pr[j]]=((ll)h[i]*h[pr[j]])%md; } } F(i,2,maxn-1) h[i]=((ll)h[i-1]+h[i])%md;} ll Sum(int n,int m){ n%=md; m%=md; n=((ll)n*(n+1)/2)%md; m=((ll)m*(m+1)/2)%md; return ((ll)n*m)%md;} void solve(int n,int m){ if (n>m) swap(n,m); ll ret=0; for (int i=1,last=0;i<=n;i=last+1) { last=min(n/(n/i),m/(m/i)); ret=(ret+((ll)h[last]-h[i-1])*Sum(n/i,m/i))%md; } ret+=md; ret%=md; printf("%lld\n",ret);} int main(){ init(); scanf("%d",&t); while (t--) { scanf("%d%d",&n,&m); solve(n,m); }}

  

转载于:https://www.cnblogs.com/SfailSth/p/6597906.html

你可能感兴趣的文章
A first look at Xync Lync client on iOS iPhone/iPad
查看>>
iphone越狱神器
查看>>
HashSet 详解
查看>>
C++中public、protect和private用法区别
查看>>
LVM逻辑卷的缩减与删除,LVM逻辑卷快照,btrfs文件系统,网络管理
查看>>
git命令
查看>>
grails 常用修改
查看>>
Java 匿名类也能使用构造函数
查看>>
nginx系列:nginx反向缓存代理详解
查看>>
点击通知栏后打开Activity,并传参
查看>>
检查是否支持 SO_REUSEPORT
查看>>
Spring MVC配置
查看>>
JDBC连接各种数据库方法
查看>>
国际版Azure搭建Windows多种类型×××_三.配置SSTP ×××连接服务
查看>>
fullPage教程 -- 整屏滚动效果插件 fullpage详解
查看>>
Python 安装 xlsx模块
查看>>
周鸿祎在360新员工入职培训上的讲话
查看>>
鸟哥学习笔记---网络安全基础
查看>>
The Life Cycle of a Servlet
查看>>
spring mvc文件上传小例子
查看>>