【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\),求\(\sum\limits_{a_i=1}\sum\limits_{b_j=1}f(\gcd(i,j))\)。

Input

第一行一个数\(T\),表示询问数。

接下来\(T\)行,每行两个数\(a,b\),表示一个询问。

Output

对于每一个询问,输出一行一个非负整数作为回答。

HINT

\(T≤10000\)

\(1≤a,b≤10^7\)


推式子可以得到

\[\sum_{T=1}^{\min(a,b)}\lfloor\frac{a}{T}\rfloor\lfloor\frac{b}{T}\rfloor\sum_{d|T}f(d)\mu(\frac{T}{d})
\]

设\(g(T)=\sum_{d|T}f(d)\mu(\frac{T}{d})\),想一下卷积发现没啥用,然后我就放弃了。

浪费了一次打表的大好机会...打表可以发现\(g\)只有\(01\)两种值,但是没什么显然的性质,于是我们可以暴力按意义分类讨论取\(0\)或者\(1\)

然后我们讨论一下,设\(p\)代表质数

  • \(g(p)=1\)

  • 然后在计算式中令\(\frac{T}{d}\)的幂全为\(0\)或\(1\),这样\(\mu\)才能产生贡献。

    这样的话可以发现\(f(d)\)只有两种取值\(f(T)\)与\(f(T-1)\),暴力讨论这两种取值。

    可以得到式子\(g(T)=-\sum_{d|x\&\&f(d)\not=f(x)}\mu(\frac{x}{d})\)

    然后继续讨论可能取的\(01\)情况,发现如果幂全相等,可以取\((-1)^{k+1}\),\(k\)为约数个数

    否则就取\(0\)

    线筛的时候维护一下最小质因子的幂数和最小质因子的幂


Code:

#include <cstdio>
#include <algorithm>
#define ll long long
const int N=1e7;
using std::min;
int pri[N+10],ispri[N+10],a[N+10],b[N+10],cnt;
ll f[N+10],ans,n,m;
void init()
{
for(int i=2;i<=N;i++)
{
if(!ispri[i])
{
b[i]=pri[++cnt]=i;
f[i]=a[i]=1;
}
for(int j=1;j<=cnt&&i*pri[j]<=N;j++)
{
ispri[i*pri[j]]=1;
if(i%pri[j]==0)
{
a[i*pri[j]]=a[i]+1;
b[i*pri[j]]=b[i]*pri[j];
if(i==b[i]) f[i*pri[j]]=1;
else f[i*pri[j]]=a[i/b[i]]==a[i]+1?-f[i/b[i]]:0;
break;
}
else
{
a[i*pri[j]]=1,b[i*pri[j]]=pri[j];
f[i*pri[j]]=a[i]==1?-f[i]:0;
}
}
}
for(int i=1;i<=N;i++) f[i]+=f[i-1];
}
int main()
{
init();int T;scanf("%d",&T);
while(T--)
{
ans=0;
scanf("%lld%lld",&n,&m);
for(ll l=1,r;l<=min(n,m);l=r+1)
{
r=min(n/(n/l),(m/(m/l)));
ans+=(n/l)*(m/l)*(f[r]-f[l-1]);
}
printf("%lld\n",ans);
}
return 0;
}

2018.12.15

【BZOJ3309】DZY Loves Math 解题报告的更多相关文章

  1. BZOJ3309 DZY Loves Math(莫比乌斯反演+线性筛)

    一通正常的莫比乌斯反演后,我们只需要求出g(n)=Σf(d)*μ(n/d)的前缀和就好了. 考虑怎么求g(n).当然是打表啊.设n=∏piai,n/d=∏pibi .显然若存在bi>1则这个d没 ...

  2. [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 ...

  3. bzoj2154||洛谷P1829 Crash的数字表格&&JZPTAB && bzoj3309 DZY Loves Math

    bzoj2154||洛谷P1829 https://www.lydsy.com/JudgeOnline/problem.php?id=2154 https://www.luogu.org/proble ...

  4. BZOJ3309 : DZY Loves Math

    莫比乌斯反演得 $ans=\sum g[i]\frac{a}{i}\frac{b}{i}$ 其中$g[i]=\sum_{j|i}f[j]\mu(\frac{i}{j})$ 由f和miu的性质可得 设$ ...

  5. CodeForces - 445A - DZY Loves Chessboard解题报告

    对于这题本人刚开始的时候觉得应该用DFS来解决实现这个问题,但由于本人对于DFS并不是太熟,所以就放弃了这个想法: 但又想了想要按照这个要求实现问题则必须是黑白相间,然后把是字符是'B'或'W'改为' ...

  6. 【莫比乌斯反演】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, ...

  7. 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,求sigma(si ...

  8. codeforces 447C. DZY Loves Sequences 解题报告(446A)

    题目链接:http://codeforces.com/problemset/problem/447/C 题目意思:给出 一个 包含 n 个数的序列你,从中需要找出这个序列的最长子串,满足在里面只修改其 ...

  9. codeforces 445B. DZY Loves Chemistry 解题报告

    题目链接:http://codeforces.com/problemset/problem/445/B 题目意思:给出 n 种chemicals,当中有 m 对可以发生反应.我们用danger来评估这 ...

随机推荐

  1. JDK 和 JRE 有什么区别

    JDK是Java开发工具包(Java Development Kit),JRE是Java运行环境(Java Runtime Environment),JDK包含了JRE,搭建Java环境的时候,安装J ...

  2. CocoStuff—基于Deeplab训练数据的标定工具【四、用该工具标定个人数据】

    一.说明 本文为系列博客第四篇,主要讲述笔者在正式使用该工具使用自定义标签标注自己的图片的过程. 二.数据整理 相信大家已经在 *占坑

  3. 从零开始的Python学习Episode 21——socket基础

    socket基础 网络通信要素: A:IP地址   (1) 用来标识网络上一台独立的主机 (2) IP地址 = 网络地址 + 主机地址(网络号:用于识别主机所在的网络/网段.主机号:用于识别该网络中的 ...

  4. java并发编程原理

    一.java内存模型 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节.此处的变量与Java编程时所说的变量不一样,指包括了实例字段 ...

  5. 软件工程-东北师大站-第十二次作业(PSP)

    1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 4.本周PSP饼状图

  6. CS小分队第二阶段冲刺站立会议(6月1日)

    昨日成果:完成了,文件图标的获取,以及代码删除获取文件的图标的功能:实现了从桌面拖动一个应用到窗体进行添加的功能: 遇到问题:获取的文件图标太小了,比较模糊:从外面拖动文件到窗体时,图标一直获取错误, ...

  7. web02-welcomeyou

    新建web项目web02-welcomeyou, 修改index.jsp为 <body> This is my JSP page. <br> <form action=& ...

  8. Task 6.4 冲刺Two之站立会议4

    今天对主界面部分的代码进行了完善,因为主界面有对于用户账号的设置.包括头像修改.增删好友.进入聊天界面等功能,包含的内容很多.我主要是负责跟聊天界面的连接以及账号设置的部分:遇到的问题有,因为这部分依 ...

  9. 特别好用的eclipse快捷键

    alt+/ 提示 alt+shift+r重命名 alt+shift+j添加文档注释 Ctrl+shift+y小写 Ctrl+shift+x大写 ctrl+shift+f格式化代码(需要取消输入法的简繁 ...

  10. Beta 冲刺 (3/7)

    队名:日不落战队 安琪(队长) 过去两天完成了那些任务 上传个人信息. 接下来的任务 建立和上传收藏夹. 还剩下的任务 完善手写涂鸦. 社交模块. 遇到的困难 暂无. 有哪些收获和疑问 收获:okht ...