●BZOJ 3309 DZY Loves Math
题链:
http://www.lydsy.com/JudgeOnline/problem.php?id=3309
题解:
莫比乌斯反演,线筛
化一化式子:
f(x)表示x的质因子分解中的最大幂指数
$\sum_{i=1}^n \sum_{j=1}^m f(gcd(i,j))$
$\quad\quad=\sum_{g=1}^{n}f(g)\sum_{d=1}^{\lfloor \frac{n}{g} \rfloor} \mu(d)\lfloor \frac{n}{gd} \rfloor\lfloor \frac{m}{gd} \rfloor$
$\quad\quad=\sum_{D=gd=1}^{n}(\lfloor \frac{n}{D} \rfloor\lfloor \frac{m}{D} \rfloor)\sum_{g|D} f(g)u(\frac{D}{g})$
令 $w[D]=\sum_{g|D} f(g)u(\frac{D}{g})$
然后如果能够预处理出w[D],那么这个题的每个询问就可以在$O(\sqrt N)$的复杂度内解决。
虽然w[D]不是积性函数,但仍可以在线筛时求出,详见BZOJ 3309: DZY Loves Math [莫比乌斯反演 线性筛]。
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#define MAXN 10000007
using namespace std;
int g[MAXN];
void Sieve(){
static bool np[MAXN];
static int prime[MAXN],idx[MAXN],hav[MAXN],pnt;
for(int i=2,tmp,d;i<=10000000;i++){
if(!np[i]) prime[++pnt]=i,hav[i]=1,idx[i]=1,g[i]=1;
for(int j=1;j<=pnt&&i<=10000000/prime[j];j++){
np[i*prime[j]]=1; hav[i*prime[j]]=hav[i]+(i%prime[j]!=0); d=1; tmp=i; while(tmp%prime[j]==0) d++,tmp/=prime[j];
if(idx[tmp]==d||tmp==1) idx[i*prime[j]]=d;
if(tmp==1) g[i*prime[j]]=1;
else if(idx[i*prime[j]]) g[i*prime[j]]=-1*(hav[i*prime[j]]&1?-1:1); if(i%prime[j]==0) break;
}
}
for(int i=1;i<=10000000;i++) g[i]+=g[i-1];
}
int main(){
Sieve();
int Case,n,m,mini; long long ans;
scanf("%d",&Case);
while(Case--){
scanf("%d%d",&n,&m);
ans=0; mini=min(n,m);
for(int D=1,last;D<=mini;D=last+1){
last=min(n/(n/D),m/(m/D));
ans+=1ll*(g[last]-g[D-1])*(n/D)*(m/D);
}
printf("%lld\n",ans);
}
return 0;
}
●BZOJ 3309 DZY Loves Math的更多相关文章
- BZOJ 3309: DZY Loves Math
3309: DZY Loves Math Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 761 Solved: 401[Submit][Status ...
- bzoj 3309 DZY Loves Math 莫比乌斯反演
DZY Loves Math Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1303 Solved: 819[Submit][Status][Dis ...
- bzoj 3309 DZY Loves Math——反演+线性筛
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3309 像这种数据范围,一般是线性预处理,每个询问 sqrt (数论分块)做. 先反演一番.然 ...
- bzoj 3309 DZY Loves Math —— 莫比乌斯反演+数论分块
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3309 凭着上课所讲和与 Narh 讨论推出式子来: 竟然是第一次写数论分块!所以迷惑了半天: ...
- 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| ...
- BZOJ 3309 DZY Loves Math ——莫比乌斯反演
枚举$d=gcd(i,j)$ 然后大力反演 ——来自Popoqqq的博客. 然后大力讨论后面的函数的意义即可. http://blog.csdn.net/popoqqq/article/details ...
- BZOJ 3309: DZY Loves Math 莫比乌斯反演+打表
有一个神奇的技巧——打表 code: #include <bits/stdc++.h> #define N 10000007 #define ll long long #define se ...
- 【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 3561 DZY Loves Math VI
BZOJ 3561 DZY Loves Math VI 求\(\sum_{i=1}^{n}\sum_{j=1}^{m}\text{lcm}(i,j)^{\gcd(i,j)}\),钦定\(n\leq m ...
随机推荐
- 201621123057 《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口,interface,implements,方法签名,has-a,Comparable,Comparator. 1.2 尝试 ...
- HTML5的新的结构元素介绍
HTML5的新的结构元素介绍 一.HTML5与HTML4的区别 1. 取消了一些过时的HTML4的标签 其中包括纯粹显示效果的标记,如<font>和<center>,它们已经被 ...
- Beta冲刺Day5
项目进展 李明皇 今天解决的进度 服务器端还未完善,所以无法进行联动调试.对页面样式和逻辑进行优化 明天安排 前后端联动调试 林翔 今天解决的进度 完成维护登录态,实现图片上传,微信开发工具上传图片不 ...
- NOIP2016 天天爱跑步 正解
暴力移步 http://www.cnblogs.com/TheRoadToTheGold/p/6673430.html 首先解决本题应用的知识点: dfs序——将求子树的信息(树形)转化为求一段连续区 ...
- Python之旅.第四章.模块与包 4.02
一.模块的使用之import 1 什么是模块?模块就一系统功能的集合体,在python中,一个py文件就是一个模块,比如module.py,其中模块名module2 使用模块2.1 import 导入 ...
- 《网络》:设置三个密码:通过console口连接设备,进入特权模式,登录Telnet
软件:Cisco Packet Tracer Instructor 软件下载链接在上一篇文章中. 内容:通过设置三个密码,熟悉采用Telnet方式配置交换机的方法. 细节说明:计算机的IP地址和交换机 ...
- 2-51单片机WIFI学习(开发板测试远程通信详细介绍)
前一篇链接(最后有APP安装包下载地址) http://www.cnblogs.com/yangfengwu/p/8720148.html 由于自己别的贴片的板子还没到,所以用自己的8266最小系统板 ...
- Python/模块与包之模块
Python/模块与包之模块 1.什么是模块? 模块就是py文件 2.为什么要用模块? 如果在解释器上进行编码,把解释器关闭之前写的文件就不存在了,如果使用模块的话就能永久保存在磁盘中. 3.如何使用 ...
- JavaScript 对图像进行(追加,插入,替换,删除)
JavaScript 对图像进行(追加,插入,替换,删除) 本次所学内容: document.querySelector('.container') 这个是可以查找单个[id标签和class标签] d ...
- c# IPC实现本机进程之间的通信
IPC可以实现本地进程之间通信.这种用法不是太常见,常见的替代方案是使用wcf,remoting,web service,socket(tcp/pipe/...)等其他分布式部署方案来替代进程之间的通 ...