传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1695

先把题目转化为求一个数在区间[1, b / k],另一个数在区间[1, d / k]时,这两个数互质的对数(是number of pairs,不是logarithm,下同)。

纠结了半天,一直在想莫比乌斯反演的公式不是“F(n) = sigma d|n f(d)   =>   f(n) = sigma d|n mu(d) * F(n / d)”吗?没想到还有另外一种形式“F(n) = sigma n|d f(d)   =>   f(n) = sigma n|d mu(d / n) * F(d)”!这就是为什么“对于一些函数f(n),如果我们很难直接求出它的值,而容易求出倍数和或约数和F(n),那么我们可以通过莫比乌斯反演来求得f(n)的值”。

#include <cstdio>

const int maxn = 100005;

int T, a, b, c, d, k, mu[maxn], prime[maxn], tot, tem;
bool book[maxn];
long long ans; inline long long F(int mn, int mx) {
return (long long)((mx << 1 | 1) - mn) * (long long)mn >> 1;
} int main(void) {
mu[1] = 1;
for (int i = 2; i < maxn; ++i) {
if (!book[i]) {
prime[tot++] = i;
mu[i] = -1;
}
for (int j = 0; j < tot; ++j) {
if (i * prime[j] > maxn) {
break;
}
book[i * prime[j]] = true;
if (i % prime[j] == 0) {
break;
}
mu[i * prime[j]] = -mu[i];
}
} scanf("%d", &T);
for (int kase = 1; kase <= T; ++kase) {
printf("Case %d: ", kase);
ans = 0;
scanf("%d%d%d%d%d", &a, &b, &c, &d, &k);
if (!k) {
puts("0");
continue;
}
b /= k;
d /= k;
if (b > d) {
tem = b;
b = d;
d = tem;
}
for (int i = 1; i <= b; ++i) {
ans += mu[i] * F(b / i, d / i);
}
printf("%lld\n", ans);
}
return 0;
}

  

[hdu1695] GCD【莫比乌斯反演】的更多相关文章

  1. HDU1695 GCD(莫比乌斯反演)

    传送门 看了1个多小时,终于懂了一点了 题目大意:给n,m,k.求gcd(x,y) = k(1<=x<=n, 1<=y<=m)的个数 思路:令F(i)表示i|gcd(x,y)的 ...

  2. hdu1695 GCD 莫比乌斯反演做法+枚举除法的取值 (5,7),(7,5)看做同一对

    /** 题目:hdu1695 GCD 链接:http://acm.hdu.edu.cn/status.php 题意:对于给出的 n 个询问,每次求有多少个数对 (x,y) , 满足 a ≤ x ≤ b ...

  3. [BZOJ 2820] YY的gcd(莫比乌斯反演+数论分块)

    [BZOJ 2820] YY的gcd(莫比乌斯反演+数论分块) 题面 给定N, M,求\(1\leq x\leq N, 1\leq y\leq M\)且gcd(x, y)为质数的(x, y)有多少对. ...

  4. hdu 1695 GCD 莫比乌斯反演入门

    GCD 题意:输入5个数a,b,c,d,k;(a = c = 1, 0 < b,d,k <= 100000);问有多少对a <= p <= b, c <= q <= ...

  5. hdu1695(莫比乌斯反演)

    传送门:GCD 题意:求[1,n],[1,m]gcd为k的对数. 分析:莫比乌斯入反演门题,gcd(x,y)==k等价于gcd(x/k,y/k)==1,求出[1,n][1,m]互质的对数,在减去[1, ...

  6. 洛谷P2257 YY的GCD 莫比乌斯反演

    原题链接 差不多算自己推出来的第一道题QwQ 题目大意 \(T\)组询问,每次问你\(1\leqslant x\leqslant N\),\(1\leqslant y\leqslant M\)中有多少 ...

  7. HYSBZ - 2818 Gcd (莫比乌斯反演)

    莫比乌斯反演的入门题,设 \(F(x): gcd(i,j)\%x=0\) 的对数,\(f(x): gcd(i,j)=x\)的对数. 易知\[F(p) = \lfloor \frac{n}{p} \rf ...

  8. 【BZOJ2818】Gcd [莫比乌斯反演]

    Gcd Time Limit: 10 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 给定整数N,求1<=x,y&l ...

  9. Luogu P2257 YY的GCD 莫比乌斯反演

    第一道莫比乌斯反演...$qwq$ 设$f(d)=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==d]$ $F(n)=\sum_{n|d}f(d)=\lfloor \frac{N ...

  10. BZOJ 2818 Gcd (莫比乌斯反演 或 欧拉函数)

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 2534  Solved: 1129 [Submit][Status][Discu ...

随机推荐

  1. 你创建线程池最好分为两种线程池,io密集型线程池,或者cpu密集型线程池

    你创建线程池最好分为两种线程池,io密集型线程池,或者cpu密集型线程池. 否则,如果只用一个线程池的话,不管是iO密集的线程,或者cpu消耗大的都放在同一个线程池的话,会发生线程池被撑满的情况

  2. TeamCity - Docker创建

    // 创建Server docker run -it --name teamcity-server-instance \-v /home/tc_datadir:/data/teamcity_serve ...

  3. 2003-07-16T01:24:32Z这是什么时间格式

    这是标准的XML Schema的"日期型数据格式”. T是代表后面跟着“时间”.Z代表0时区,或者叫UTC统一时间. 世界的每个地区都有自己的本地时间,在Internet及无线电通信时,时间 ...

  4. js中window.onload 与 jquery中$(document.ready()) 測试

    js中window.onload 与 jquery中$(document.ready())差别,验证代码例如以下(调换js代码和Jquer代码书写顺序測试.执行结果一样.因此与代码书写位置没关系): ...

  5. 关于Scrum

    最近某些产品经理发出下两周的工作计划的时候,喜欢带上sprint这个字眼,看上去貌似是要走敏捷开发这一套,只可惜,我觉得他表现出来的是对敏捷开发和Scrum一窍不通,甚至对软件开发流程都完全不清楚,居 ...

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

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

  7. java中 ++前后差别试题及静态变量一旦赋值不可改变

    package javaTest; public class Increment { private static int k=0; public static void main(String[] ...

  8. iOS开发人员:事实上你还有非常多东西须要学

    iOS 新特性总结(since iOS6) iOS 6 1.废除viewDidUnLoad 收到内存警告须要到didReceiveMemoryWarning中处理 [小技巧] -(void)didRe ...

  9. the first week study

    1.In 1989, a man named Guido create "python" as a kind of computer languages. And now we u ...

  10. VCL代码的一些设计手法(使用OO虚函数的技巧)

    1. 抽象类法(VCL不推荐):第一,允许创建抽象类对象,因为语法没问题,但允许其错误.第二,接口更好.第三,如果是混合抽象类,则推荐Place Holder方法2. Place Holder(占位) ...