线性筛+莫比乌斯反演

盗波图 来自candy?大神

反演很重要的一条公式就是[gcd(i,j)==1]=

线性筛怎么推呢?

我们分4个步骤,1.先推出f[1],2.推出f[p],p是一个质数,3.由于线性筛筛的是积性函数,那么当gcd(i,p[j])==1的时候,f[i*p[j]]=f[i]*f[p[j]],4.前三步都比较简单,第四步是if(i%p[j]==0)该怎么办

我们是要推这个东西的值,因为积性函数的约数和也是积性函数,所以这个也可以筛,那么我们考虑对于当前的D,我们用一个pri筛到了D,而且D%pri==0,然后思考一下,这个pri能给这个式子带来什么贡献呢?

很明显,i肯定是几个质数的乘积,否则mu[i]==0,没有意义,那么这个pri肯定对约数和没有贡献了,因为之前筛到的时候已经被计算过了,那个*i^2自然也是不可能受到pri的影响,但是我们看看那个D,现在我们求的是f[D*pri],那么自然D得乘上pri,所以我们得出现在f[i*pri]=f[i]*pri

大概是这样吧

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = , mod = ;
int n, m, T;
int mu[N], p[N];
bool mark[N];
ll f[N];
void ini()
{
mu[] = f[] = ;
for(int i = ; i <= ; ++i)
{
if(!mark[i])
{
p[++p[]] = i;
mu[i] = -;
f[i] = ((-(ll)i * (ll)i + i) % mod + mod) % mod;
}
for(int j = ; j <= p[] && i * p[j] <= ; ++j)
{
mark[i * p[j]] = ;
if(i % p[j] == )
{
mu[i * p[j]] = ;
f[i * p[j]] = f[i] * p[j] % mod;
break;
}
f[i * p[j]] = f[i] * f[p[j]] % mod;
mu[i * p[j]] = -mu[i];
}
}
for(int i = ; i <= ; ++i) f[i] = (f[i] + f[i - ]) % mod;
}
ll Sum(ll x, ll y)
{
return (x * (x + 1ll) / 2ll % mod) % mod * (y * (y + 1ll) / 2ll % mod) % mod;
}
void solve(int n, int m)
{
if(n > m) swap(n, m);
ll ret = ;
for(int i = , j = ; i <= n; i = j + )
{
j = min(n / (n / i), m / (m / i));
ret = (ret + Sum(n / i, m / i) % mod * ((f[j] - f[i - ]) % mod + mod) % mod) % mod;
}
printf("%lld\n", ret);
}
int main()
{
ini();
for(cin >> T; T; --T)
{
scanf("%d%d", &n, &m);
solve(n, m);
}
return ;
}

bzoj2693的更多相关文章

  1. 【BZOJ2693】jzptab(莫比乌斯反演)

    [BZOJ2693]jzptab(莫比乌斯反演) 题面 讨厌权限题,只能跑到别的OJ上交 和这题是一样的 多组数据 求\[\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)\] 题解 前 ...

  2. 题解-bzoj2154Crash的数字表格 & bzoj2693 jzptab

    Problem bzoj2818-单组询问-无权限 bzoj2693-多组询问-需权限 洛谷1829-单组询问-无权限 \(T\)组询问(如果有),给定 \(n,m\),求 \[\sum_{i=1}^ ...

  3. BZOJ2154/BZOJ2693/Luogu1829 Crash的数字表格/JZPFAR 莫比乌斯反演

    传送门--Luogu 传送门--BZOJ2154 BZOJ2693是权限题 其中JZPFAR是多组询问,Crash的数字表格是单组询问 先推式子(默认\(N \leq M\),所有分数下取整) \(\ ...

  4. 【BZOJ2693】jzptab & 【BZOJ2154】Crash的数字表格

    题目 弱化版题目的传送门([BZOJ2154]Crash的数字表格) 加强版题目的传送门([BZOJ2693]jzptab) 思路&解法 题目是要求: \(\sum\limits_{i = 1 ...

  5. BZOJ2154: Crash的数字表格 & BZOJ2693: jzptab

    [传送门:BZOJ2154&BZOJ2693] 简要题意: 给出n,m,求$\sum_{i=1}^{n}\sum_{j=1}^{m}LCM(i,j)$ 题解: 莫比乌斯反演(因为BZOJ269 ...

  6. BZOJ2693: jzptab

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2693 题意:同2154 多组数据 题解:按2154再往后转化一下就可以把n,m放到一边儿,然后 ...

  7. 【BZOJ2693】jzptab

    Time Limit: 5000 ms Memory Limit: 512 MB description 给你\(n, m\),求\(\sum\limits_{i=1}^{n}\sum\limits_ ...

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

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

  9. BZOJ2693:JZPTAP——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=2693 Description   Input 一个正整数T表示数据组数 接下来T行 每行两个正整数 ...

  10. 【BZOJ2693】jzptab [莫比乌斯反演]

    jzptab Time Limit: 10 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description   求 Input 第一行一个 ...

随机推荐

  1. Java设计模式之(工厂模式)

    工厂模式: 工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 简单工厂模 ...

  2. Free Web Application Firewall相关资料

    http://www.freewaf.org/solution/#1 http://baike.soso.com/v60659982.htm

  3. Sudoku---hdu2676(数独DFS)

    http://poj.org/problem?id=2676 递归深搜 #include<stdio.h> #include<string.h> #include<alg ...

  4. Java实现网页截屏

    原文:http://www.open-open.com/code/view/1424006089452 import java.awt.AWTException; import java.awt.De ...

  5. Hadoop在window上运行 user=Administrator, access=WRITE, inode="hadoop"

    win7下eclipse中错误的详细描述如下: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.securit ...

  6. [Analytics] Add Tealium debugger in Chrome

    It would be helpful once you can see what information have been tracking inside you web application, ...

  7. 如约而至,Java 10 正式发布! Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势 努力的孩子运气不会太差,跌宕的人生定当更加精彩 优先队列详解(转载)

    如约而至,Java 10 正式发布!   3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java ...

  8. URL编码总结

    URL编码总结           URL是Universal Resource Locator的简称.翻译过来那就是统一资源定位符,好吧,我们常常会俗称为网页地址. 一个URL的格式一般是这种:协议 ...

  9. request.getAttribute()与request.setAttribute()

    request.getAttribute()与request.setAttribute() request.getAttribute("nameOfObj")可得到JSP页面一表单 ...

  10. LeetCode题解汇总

    陆续更新至github... https://github.com/OliveLv/LeetCode/