【XSY2719】prime 莫比乌斯反演
2024-09-23 09:15:28
题目描述
设\(f(i)\)为\(i\)的不同的质因子个数,求\(\sum_{i=1}^n2^{f(i)}\)
\(n\leq{10}^{12}\)
题解
考虑\(2^{f(i)}\)的意义:有\(f(i)\)总因子,每种可以分给两个人中的一个。那么就有\(2^{f(i)}=\sum_{d|i}[\gcd(d,\frac{i}{d})=1]\)
然后就是简单莫比乌斯反演了。
\[\begin{align}
s&=\sum_{i=1}^n\sum_{d|i}[\gcd(d,\frac{i}{d})=1]\\
&=\sum_{i=1}^n\sum_{d|i}\sum_{j|d\text{&&}j|\frac{i}{d}}\mu(j)\\
&=\sum_{i=1}^n\sum_{j^2|i}g(\frac{i}{j^2})\mu(j)\\
&=\sum_{j=1}^\sqrt{n}\mu(j)\sum_{i=1}^{\lfloor\frac{n}{j^2}\rfloor}g(i)\\
&=\sum_{j=1}^\sqrt{n}\mu(j)\sum_{i=1}^{\lfloor\frac{n}{j^2}\rfloor}\lfloor\frac{n}{j^2i}\rfloor
\end{align}
\]
s&=\sum_{i=1}^n\sum_{d|i}[\gcd(d,\frac{i}{d})=1]\\
&=\sum_{i=1}^n\sum_{d|i}\sum_{j|d\text{&&}j|\frac{i}{d}}\mu(j)\\
&=\sum_{i=1}^n\sum_{j^2|i}g(\frac{i}{j^2})\mu(j)\\
&=\sum_{j=1}^\sqrt{n}\mu(j)\sum_{i=1}^{\lfloor\frac{n}{j^2}\rfloor}g(i)\\
&=\sum_{j=1}^\sqrt{n}\mu(j)\sum_{i=1}^{\lfloor\frac{n}{j^2}\rfloor}\lfloor\frac{n}{j^2i}\rfloor
\end{align}
\]
时间复杂度:\(O(\sqrt n\log n)\)
代码
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll p=998244353;
ll gao(ll x)
{
ll s=0;
ll i,j;
for(i=1;i<=x;i=j+1)
{
j=x/(x/i);
s+=(x/i)*(j-i+1);
}
return s;
}
int b[1000010];
int pri[1000010];
int cnt;
int miu[1000010];
int main()
{
ll i,j;
miu[1]=1;
for(i=2;i<=1000000;i++)
{
if(!b[i])
{
pri[++cnt]=i;
miu[i]=-1;
}
for(j=1;j<=cnt&&i*pri[j]<=1000000;j++)
{
b[i*pri[j]]=1;
if(i%pri[j]==0)
{
miu[i*pri[j]]=0;
break;
}
miu[i*pri[j]]=-miu[i];
}
}
ll ans=0;
ll n;
scanf("%lld",&n);
for(i=1;i*i<=n;i++)
ans=(ans+miu[i]*gao(n/(i*i)))%p;
ans=(ans+p)%p;
printf("%lld\n",ans);
return 0;
}
最新文章
- 设计模式(九)装饰者模式(Decorator Pattern)
- Notepad++源码编译及其分析
- HDU5950(矩阵快速幂)
- LintCode Anagrams
- PHP 单例模式继承的实现方式
- Swift初学习
- HTML DOM简介
- newsstand杂志阅读应用源码ipad版
- Nginx + Tomcat 动静分离实现负载均衡(转)
- jquery <;li>;标签 隔若干行 加空白或者加虚线
- SPOJ 3943 - Nested Dolls 最长不下降子序列LIS(二分写法)
- MVC3+EF4.1学习系列(八)-----利用Repository and Unit of Work重构项目
- Jmeter正则表达式提取器(转载)
- CF912E Prime Gift
- 通过 EXPLAIN 分析低效 SQL 的执行计划
- DIOCP-开源项目ECHO测试.
- python opencv3 背景分割 mog2 knn
- SpringMVC 多视图解析器配置以及问题
- golang 数组以及slice切片
- loj2163 / bzoj2212 / P3521 [POI2011]ROT-Tree Rotations(线段树合并)