【BZOJ3309】DZY Loves Math 解题报告
【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\)
推式子可以得到
\]
设\(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 解题报告的更多相关文章
- BZOJ3309 DZY Loves Math(莫比乌斯反演+线性筛)
一通正常的莫比乌斯反演后,我们只需要求出g(n)=Σf(d)*μ(n/d)的前缀和就好了. 考虑怎么求g(n).当然是打表啊.设n=∏piai,n/d=∏pibi .显然若存在bi>1则这个d没 ...
- [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 ...
- bzoj2154||洛谷P1829 Crash的数字表格&&JZPTAB && bzoj3309 DZY Loves Math
bzoj2154||洛谷P1829 https://www.lydsy.com/JudgeOnline/problem.php?id=2154 https://www.luogu.org/proble ...
- 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的性质可得 设$ ...
- CodeForces - 445A - DZY Loves Chessboard解题报告
对于这题本人刚开始的时候觉得应该用DFS来解决实现这个问题,但由于本人对于DFS并不是太熟,所以就放弃了这个想法: 但又想了想要按照这个要求实现问题则必须是黑白相间,然后把是字符是'B'或'W'改为' ...
- 【莫比乌斯反演】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, ...
- 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 ...
- codeforces 447C. DZY Loves Sequences 解题报告(446A)
题目链接:http://codeforces.com/problemset/problem/447/C 题目意思:给出 一个 包含 n 个数的序列你,从中需要找出这个序列的最长子串,满足在里面只修改其 ...
- codeforces 445B. DZY Loves Chemistry 解题报告
题目链接:http://codeforces.com/problemset/problem/445/B 题目意思:给出 n 种chemicals,当中有 m 对可以发生反应.我们用danger来评估这 ...
随机推荐
- Jmeter实战
Jmeter实战 入门篇 1.下载与使用 下载地址:http://jmeter.apache.org/download_jmeter.cgi 开源,基于java编写,所以得有jdk(jre)环境,下载 ...
- sklearn 中的 Pipeline 机制
转载自:https://blog.csdn.net/lanchunhui/article/details/50521648 from sklearn.pipeline import Pipeline ...
- Deep learning for visual understanding: A review 视觉理解中的深度学习:回顾 之一
Deep learning for visual understanding: A review 视觉理解中的深度学习:回顾 ABSTRACT: Deep learning algorithms ar ...
- MAC node + git + bower 简单安装
一 node 安装 打开https://nodejs.org/en/ nodejs官网 下载安装文件 双击.pkg 文件 自动安装即可 二 安装git 打开 http://code.google.co ...
- 搭建好看的静态博客(使用Hexo进行搭建)
经常看到大牛的博客非常的高大帅气,虽然我很渣,但是逼格不能输,所以有了以下的搭建记录. 我的成果ninwoo,喜欢的可以参考下面的记录一起来动手搞起来. 安装Git Bash 访问git下载最新版本的 ...
- 基于Eclipse下的python图像识别菜鸟版(利用pytesseract以及tesseract)
这是我注册博客后写的第一篇博客,希望对有相关问题的朋友有帮助. 在图像识别前,首先我们要做好准备工作. 运行环境:windows7及以上版本 运行所需软件:(有基础的可以跳过这一段)eclipse,p ...
- import 导入包的特别用法总结
指定别名 可以为包指定一个别名,以便记忆或提高输入效率 如 import str "strings" 在使用的时候可以直接使用别名,如原先要写成strings.Contains,现 ...
- Linux下端口映射工具rinetd
Linux下简单好用的工具rinetd,实现端口映射/转发/重定向官网地址http://www.boutell.com/rinetd 软件下载wget http://www.boutell.com/r ...
- Alpha版本测试文档
概述 本次测试主要是为了测试是否有导致崩溃的bug,验证是否符合软件基本需求. 测试环境 硬件测试:安卓系统手机,安卓平板. 测试人员 赖彦谕,金哉仁. 实际进度 2015/11/6 – 2015/1 ...
- 【数据预处理】TIMIT语料库WAV文件转换
1 问题描述 这两天复现代码.先构造数据集,纯净语音.不同噪声.不同SNR的混合语音.其中纯净语音由两部分组成,IEEE corpus和TIMIT. 一开始我用MATLAB中的audioread读取音 ...