【BZOJ3309】DZY Loves Math(莫比乌斯反演)
【BZOJ3309】DZY Loves Math(莫比乌斯反演)
题面
求
\]
其中,\(f(x)\)表示\(x\)分解质因数之后,最高的幂次
题解
完全不会莫比乌斯反演了。
先来推式子
\]
\]
设\(F(x)=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)=x]\)
\(G(x)=\sum_{x|d}f(d)=\sum_{i=1}^n\sum_{j=1}^m[x|gcd(i,j)]\)
所以\(G(x)=[\frac{n}{x}][\frac{m}{x}]\)
所以原式可以变为
又有\(F(x)=\sum_{x|d}\mu(\frac{d}{x})G(d)\)
所以\(F(1)=\sum_{d=1}^n\mu(d)G(d)\)
所以所求变为
\]
\]
老套路了,令\(T=id\)
\]
后面这个玩意怎么算呢??
迷茫啊。。。。
考虑枚举的每一个\(T=p1^{a1}*p2^{a2}...pn^{an}\)
因为\(\mu\)要非零才有贡献,所以\(\frac{T}{d}\)的每一个质因数最多取\(1\),因此一共有\(2^n\)个对应的\(d\)
假设确定了选择某个质因数\(px^{ax-1}\),并且它是最高幂了
那么所有比它低的幂次都可以随意选或者不选,
一共是\(2^{?-1}\)个,不难证明此时\(f(d)\)的值一样,\(\mu\)的值恰好一一对应为\(-1,1\),此时的和一定为\(0\)
这样的前提是存在比他低的次幂,也就意味着所有的幂次不全相等。
假设全部相等的时候?
也就是\(T=(p1p2p3..pn)^a\)
\(d=(p1p2..pn)^{a-1}\)时,\(f(d)=a-1\)
其他情况下\(f(d)=a\)
先假设所有情况下\(f(d)=a\)
显然最终的和也是\(0\)
但是有一种情况下为\(a-1\),因此要对于上面那种情况额外把\(1\)减掉
因此贡献是\(-1*\mu(p1p2p3..pn)=(-1)^{(n+1)}\)
这样就可以算出后面那一坨东西的值了。
至于怎么线性筛?
额外记录每个数出去最小质因子后的数\(lst[i]\)
以及最小质因子的幂次
这样就可以通过\(lst[i]\)计算出结果了
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define ll long long
#define RG register
#define MAX 10000000
inline int read()
{
RG int x=0,t=1;RG char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=-1,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return x*t;
}
bool zs[MAX+1];
int pri[MAX+1],tot,g[MAX+1],lst[MAX+1],fp[MAX+1];
void pre()
{
for(int i=2;i<=MAX;++i)
{
if(!zs[i])pri[++tot]=i,lst[i]=g[i]=fp[i]=1;
for(int j=1;j<=tot&&i*pri[j]<=MAX;++j)
{
int x=i*pri[j];
zs[x]=true;
if(i%pri[j]==0)
{
lst[x]=lst[i];
fp[x]=fp[i]+1;
if(lst[x]==1)g[x]=1;
else g[x]=(fp[lst[x]]==fp[x]?-g[lst[x]]:0);
break;
}
lst[x]=i;fp[x]=1;g[x]=(fp[i]==1?-g[i]:0);
}
}
for(int i=1;i<=MAX;++i)g[i]+=g[i-1];
}
int main()
{
pre();
int T=read();
while(T--)
{
int a=read(),b=read();
if(a>b)swap(a,b);
ll ans=0;
for(int i=1,j;i<=a;i=j+1)
{
j=min(a/(a/i),b/(b/i));
ans+=1ll*(a/i)*(b/i)*(g[j]-g[i-1]);
}
printf("%lld\n",ans);
}
return 0;
}
【BZOJ3309】DZY Loves Math(莫比乌斯反演)的更多相关文章
- [BZOJ3309]DZY Loves Math(莫比乌斯反演+线性筛)
$\sum\limits_{T=1}^{n}\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor\sum\limits_{d|T}f(d)\mu(\fr ...
- 【BZOJ3309】DZY Loves Math 莫比乌斯反演+线性筛(好题)
[BZOJ3309]DZY Loves Math Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10 ...
- 【BZOJ】3309: DZY Loves Math 莫比乌斯反演优化
3309: DZY Loves Math Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007) ...
- bzoj 3309 DZY Loves Math 莫比乌斯反演
DZY Loves Math Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1303 Solved: 819[Submit][Status][Dis ...
- 【BZOJ3309】DZY Loves Math - 莫比乌斯反演
题意: 对于正整数n,定义$f(n)$为$n$所含质因子的最大幂指数.例如$f(1960)=f(2^3 * 5^1 * 7^2)=3$,$f(10007)=1$,$f(1)=0$. 给定正整数$a,b ...
- 【bzoj3309】DZY Loves Math 莫比乌斯反演+线性筛
Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0. 给定正整数a,b, ...
- BZOJ 3309 DZY Loves Math ——莫比乌斯反演
枚举$d=gcd(i,j)$ 然后大力反演 ——来自Popoqqq的博客. 然后大力讨论后面的函数的意义即可. http://blog.csdn.net/popoqqq/article/details ...
- BZOJ 3309: DZY Loves Math [莫比乌斯反演 线性筛]
题意:\(f(n)\)为n的质因子分解中的最大幂指数,求\(\sum_{i=1}^n \sum_{j=1}^m f(gcd(i,j))\) 套路推♂倒 \[ \sum_{D=1}^n \sum_{d| ...
- BZOJ3309 DZY Loves Maths 莫比乌斯反演、线性筛
传送门 推式子(默认\(N \leq M\)): \(\begin{align*} \sum\limits_{i=1}^N \sum\limits_{j=1}^Mf(gcd(i,j)) & = ...
- bzoj 3309 DZY Loves Math —— 莫比乌斯反演+数论分块
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3309 凭着上课所讲和与 Narh 讨论推出式子来: 竟然是第一次写数论分块!所以迷惑了半天: ...
随机推荐
- 重装系统之无法在驱动器0的分区1上安装windows
在通过U盘或光盘安装win8/win8.1/win10 时,遇到无法安装的问题,提示“无法在驱动器0的分区1上安装windows”,格式化分区也不能解决,进而提示Windows无法安装到这个磁盘,选中 ...
- China Intelligent Office Summit(2018.11.21)
时间:2018.11.21地点:中关村软件园国际会议中心
- Elasticsearch Query DSL 整理总结(四)—— Multi Match Query
目录 引言 概要 fields 字段 通配符 提升字段权重 multi_match查询的类型 best_fields 类型 dis_max 分离最大化查询 best_fields 维权使者 tie_b ...
- 个人博客地址: furur.xyz
趁着Hexo的热度,最近就买了域名,在GitHub Pages上搭了个人博客.也不是说博客园不好吧,毕竟在博客园三年多,也学到了不少东西,唯一要吐槽的,估计也就是后台管理不方便,markdown无即时 ...
- Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)
之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...
- 基本的排序算法C++实现(插入排序,选择排序,冒泡排序,归并排序,快速排序,最大堆排序,希尔排序)
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/8529525.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- Java计算器(结对)
一:题目简介 我们要做的是一个多功能计算器,Java程序编辑器是:图形界面.线程.流与文件等技术的综合应用. 图形界面的实现:考虑到简单.实用.高效等特点,就选择了Swing来完成实现,在选择组件上, ...
- Python小笔记
最近在学习Python 以前也学过一些编程语言 但是都不扎实 由于工作的原因 需要学习Python做一些处理 刚开始学习总有多多少少的不适应 从今天开始打算将我在学习中遇到的困难以及疑问记录下来 ...
- 运行scrapy crawl (文件名)时显示invalid syntax和no modle 'win32api'解决方案
使用pycharm爬取知乎网站的时候,在terminal端输入scarpy crawl zhihu,提示语法错误,如下: 原因是python3.7中将async设为关键字,根据错误提示,找到manho ...
- 5-Python3从入门到实战—基础之数据类型(列表-List)
Python从入门到实战系列--目录 列表定义 list:列表(list)是Python内置的一种数据类型,list是一种有序的集合,索引从0开始,可以进行截取.组合等: //创建列表 list1 = ...