题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2301

题意:每次给出a,b,c,d,K。求有多少数对(x,y)满足a<=x<=b,c<=y<=d且Gcd(x,y)=K?

思路:

i64 mou[N];
i64 a,b,c,d,k;

void init()
{
    i64 i,j;
    for(i=2;i<N;i++) if(!mou[i])
    {
        mou[i]=i;
        for(j=i*i;j<N;j+=i) mou[j]=i;
    }
    mou[1]=1;
    for(i=2;i<N;i++)
    {
        if(i/mou[i]%mou[i]==0) mou[i]=0;
        else mou[i]=-mou[i/mou[i]];
    }
    for(i=1;i<N;i++) mou[i]+=mou[i-1];
}

i64 cal(i64 n,i64 m)
{
    n/=k; m/=k;
    if(n>m) swap(n,m);
    int L,R;
    i64 ans=0;
    for(L=1;L<=n;L=R+1)
    {
        R=min(n/(n/L),m/(m/L));
        ans+=(mou[R]-mou[L-1])*(n/L)*(m/L);
    }
    return ans;
}
int main()
{
    init();
    rush()
{
   RD(a,b); RD(c,d); RD(k);
   i64 ans=cal(b,d)-cal(a-1,d)-cal(c-1,b)+cal(a-1,c-1);
   PR(ans);
}
return 0;
}

BZOJ 2301 Problem b(莫比乌斯函数)的更多相关文章

  1. BZOJ 2301 Problem b (莫比乌斯反演+容斥)

    这道题和 HDU-1695不同的是,a,c不一定是1了.还是莫比乌斯的套路,加上容斥求结果. 设\(F(n,m,k)\)为满足\(gcd(i,j)=k(1\leq i\leq n,1\leq j\le ...

  2. BZOJ 2301 Problem b(莫比乌斯反演+分块优化)

    Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

  3. BZOJ 2301 Problem B(莫比乌斯反演)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2301 题意:给a,b,c,d,k,求gcd(x,y)==k的个数(a<=x<=b,c&l ...

  4. 【莫比乌斯反演】关于Mobius反演与gcd的一些关系与问题简化(bzoj 2301 Problem b&&bzoj 2820 YY的GCD&&BZOJ 3529 数表)

    首先我们来看一道题  BZOJ 2301 Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd( ...

  5. bzoj 2440 完全平方数 【莫比乌斯函数】

    题目 题意:第Ki 个不是完全平方数的正整数倍的数. 对于一个数t,t以内的数里的非完全平方数倍数的个数:num=1的倍数的数量−一个质数平方数(9,25,49...)的倍数的数量+两个质数的积平方数 ...

  6. BZOJ 2301 Problem b(莫比乌斯反演+分块优化)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=37166 题意:对于给出的n个询问,每次求有多少个数对(x,y),满 ...

  7. BZoj 2301 Problem b(容斥定理+莫比乌斯反演)

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MB Submit: 7732  Solved: 3750 [Submi ...

  8. BZOJ 2301 Problem b

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=2301 冬令营听了莫比乌斯,这就是宋老师上课讲的例题咯[今天来实现一下] #include& ...

  9. bzoj 3944: Sum【莫比乌斯函数+欧拉函数+杜教筛】

    一道杜教筛的板子题. 两个都是积性函数,所以做法是一样的.以mu为例,设\( f(n)=\sum_{d|n}\mu(d) g(n)=\sum_{i=1}^{n}f(i) s(n)=\sum_{i=1} ...

随机推荐

  1. 修改mysql的root密码

    use msyql; update user set password=password('新密码') where user='root'; flush privileges; quit net st ...

  2. 关于sublime text

    Sublime text2 C/C++ 编译环境设置 (2014-04-10 20:51:16) 转载▼ 标签: sublime c语言 程序设计 gcc cpp 分类: 记录与分享 sublime ...

  3. jquery插件dataTables添加序号列

    官网方法实例: $(document).ready(function() {     var t = $('#example').DataTable({         "columnDef ...

  4. 机器学习中的数学-矩阵奇异值分解(SVD)及其应用

    转自:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 版权声明: 本文由LeftNotE ...

  5. apache nginx php不显示版本号

    apache 不显示版本号 http.conf 中的 修改为 ServerTokens ProdServerSignature Off 有的版本没有,在最后添加即可 php php.ini 中的 修改 ...

  6. json封装与解析

    #include <iostream> #include <boost/property_tree/ptree.hpp> #include <boost/property ...

  7. JavaScript高级---装饰者模式设计

    一.设计模式 javascript里面给我们提供了很多种设计模式: 工厂.桥.组合.门面.适配器.装饰者.享元.代理.观察者.命令.责任链 在前面我们实现了工厂模式和桥模式 工厂模式 : 核心:为了生 ...

  8. 物理地址 = 段地址*10H + 偏移地址

    程序如何执行: CPU先找到程序在内存中的入口地址 -- 地址总线 (8086有20根地址总线,每一根可以某一时传0或1, 20位的二进制数字可以表示的不同的数字的个数是2^20=1048576 10 ...

  9. Unity3D研究院之脚本批量打包渠道包研究

    原地址:http://www.xuanyusong.com/archives/2418#comments 最近在研究Unity3D脚本批量打包,比如在Android平台下各种不同分辨率和不同内存大小的 ...

  10. 用supervisor控制celery时的脚本

    注意启停的先后顺序及判断即可. 这样,在更改task之后,要重启就方便很多啦.. #!/bin/sh supervisord_count=`ps -elf | grep celery | grep - ...