一通正常的莫比乌斯反演后,我们只需要求出g(n)=Σf(d)*μ(n/d)的前缀和就好了。

  考虑怎么求g(n)。当然是打表啊。设n=∏piai,n/d=∏pibi 。显然若存在bi>1则这个d没有贡献。考虑bi为0和1两种情况。如果只看ai最小的质因子的选取情况,会发现大部分情况下其是0还是1,对f的取值是没有影响的,但会使μ取反,于是就抵消为0。而特殊情况即为所有ai均相同,此时若所有bi都取1会使f减少。与一般情况比较可以得到此时g(n)=(-1)质因子个数+1

  然后就可以线性筛了。记录一下n去掉最小质因子后的数及最小质因子的幂次就可以了。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{int x=0,f=1;char c=getchar();while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();return x*f;
}
#define N 10000010
int T,prime[N],f[N],p[N],c[N],v[N],cnt=0;
bool flag[N];
int main()
{
#ifndef ONLINE_JUDGEfreopen("bzoj3309.in","r",stdin);freopen("bzoj3309.out","w",stdout);const char LL[]="%I64d\n";
#elseconst char LL[]="%lld\n";
#endifT=read();flag[1]=1;p[1]=1;c[1]=0;f[1]=0;for (int i=2;i<=N-10;i++){if (!flag[i]) prime[++cnt]=i,p[i]=1,c[i]=1,f[i]=1;for (int j=1;j<=cnt&&prime[j]*i<=N-10;j++){int t=prime[j]*i;flag[t]=1;if (i%prime[j]==0){p[t]=p[i];c[t]=c[i]+1;if (c[p[i]]==0) f[t]=1;else f[t]=(c[t]==c[p[i]]?-f[p[i]]:0);break;}p[t]=i;c[t]=1;if (c[i]==0) f[t]=1;else f[t]=(c[i]==1?-f[i]:0);}}for (int i=1;i<=N-10;i++) f[i]+=f[i-1];while (T--){int n=read(),m=read();long long ans=0;for (int i=1;i<=min(n,m);i++){int t=min(n/(n/i),m/(m/i));ans+=1ll*(f[t]-f[i-1])*(n/i)*(m/i);i=t;}printf(LL,ans);}return 0;
}

转载于:https://www.cnblogs.com/Gloid/p/9683589.html

BZOJ3309 DZY Loves Math(莫比乌斯反演+线性筛)相关推荐

  1. 【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, ...

  2. 【bzoj2694】Lcm 莫比乌斯反演+线性筛

    题目描述 求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m|\mu(gcd(i,j))|lcm(i,j)$,即$gcd(i,j)$不存在平方因子的$lcm(i,j)$之 ...

  3. 【bzoj2693】jzptab 莫比乌斯反演+线性筛

    题目描述 输入 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M 输出 T行 每行一个整数 表示第i组数据的结果 样例输入 1 4 5 样例输出 122 题解 莫比乌斯反演+线性筛 由 ...

  4. Bzoj3309-DZY Loves Math【莫比乌斯反演,线性筛】

    正题 bzoj没了,在darkbzoj交吧 题目链接:https://darkbzoj.tk/problem/3309 题目大意 定义f(x)f(x)f(x)表示xxx所有质因数中最大的指数幂. 求∑ ...

  5. bzoj4407 于神之怒加强版(莫比乌斯反演+线性筛)

    4407: 于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MB Submit: 355  Solved: 174 [Submit][Status][Dis ...

  6. bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛

    Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...

  7. 南昌邀请赛网络赛 G. tsy's number(莫比乌斯反演+线性筛)

    题目链接: tsy's number 题意: 求    (mod ) 思路: 原式 =  设   设  原式 =  设T = id ,将 i 的求和变为 T 的求和: 原式 =   :这个是 与  的 ...

  8. bzoj3309: DZY Loves Math

    这显然要用莫比乌斯反演: Ans=∑ai=1∑bj=1f(gcd(i,j))=∑df(d)∑⌊ad⌋i=1∑⌊bd⌋j=1[gcd(i,j)=1]=∑df(d)∑⌊ad⌋i=1∑⌊bd⌋j=1∑p|T ...

  9. 洛谷P2257 YY的GCD 莫比乌斯函数反演+线性筛

    洛谷P2257 YY的GCD 标签 莫比乌斯反演 线性筛 前言 这题貌似和莫反没多大关系,就是用到了一个莫比乌斯函数的性质了,其他就是推公式,优化和式. 我的第一道懵逼反演-真的好难好难-而且套路特别 ...

最新文章

  1. go build 编译报错 missing go.sum entry for module providing package
  2. iOS7系统iLEX RAT冬青鼠安装教程:无需刷机还原纯净越狱系统
  3. 配置Struts 2应用程序的安全功能(转)
  4. 【Linux】一步一步学Linux——dpkg-preconfigure命令(275)
  5. 三种主流流媒体协议比较
  6. java conditionobject_Java AbstractQueuedSynchronizer源码阅读4-ConditionObject
  7. ExcelToHtmlTable转换算法:将Excel转换成Html表格并展示(项目源码+详细注释+项目截图)...
  8. linux中不用命令安装flash,Linux下安装flash player的方法
  9. 生物信息常用网站(数据库)
  10. Git—— 1.安装
  11. netware显示没有首选服务器,NetWare下服务器配置几例
  12. Android环境搭建
  13. mysql客户端用什么 知乎_知乎面试记
  14. BDE-TDataBase
  15. java获取手机通讯录权限_android获取手机通讯录
  16. 基于T5CPU的智能屏产品型号与内核对照表
  17. 我见过的最糟糕代码,看了都说好!
  18. 笔记本外接显示器闪烁(水波纹)解决方案
  19. AWK文本分析工具-常用场景(持续更新中)
  20. 事无巨细,时钟芯片DS1302

热门文章

  1. 树莓派php中文乱码,[翻译完成] 树莓派U-Boot
  2. 全局配置_中兴天机配置公布:智汇屏+全局黑暗模式
  3. 安卓mysql类库_Android 链接mysql数据库
  4. mysql heartbeat keepalived_LVS+keepalived+DRBD+heartbeat+mysql
  5. OpenCV-Python实战(10)——详解 OpenCV 轮廓检测
  6. Python Parse JSON –转储,加载
  7. 开课吧Web:学习Web前端技术有哪些好处?
  8. JAVA中的枚举使用总结
  9. 【HDOJ】1261 字串数【组合数学--排列+代数】
  10. centos(7.0) 上 crontab 计划任务