亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

歐拉函數+容斥原理

系統 2084 0

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

      
         1
      
      
        /*
      
      
        *


      
      
         2
      
      
             GCD(x,y)=k;在x小于b且y小于d時有多少組答案


      
      
         3
      
      
        2


      
      
         4
      
      
        1 3 1 5 1


      
      
         5
      
      
        1 11014 1 14409 9


      
      
         6
      
      
         7
      
      
        Case 1: 9


      
      
         8
      
      
        Case 2: 736427


      
      
         9
      
      
        10
      
      
        For the first sample input, all the 9 pairs of numbers are 


      
      
        11
      
      
        (1,1),(1,2),(1,3),(1,4),(1,5),(2,3),(2,5),(3,4),(3,5).


      
      
        12
      
      
        *
      
      
        */
      
      
        13
      
       #include <iostream>


      
        14
      
       #include <cstdio>


      
        15
      
       #include <vector>


      
        16
      
       #include <cmath>


      
        17
      
      
        using
      
      
        namespace
      
      
         std;


      
      
        18
      
      
        const
      
      
        int
      
       Ni = 
      
        100010
      
      
        ;


      
      
        19
      
      
        int
      
      
         phi[Ni];


      
      
        20
      
       vector<
      
        int
      
      >
      
         prime[Ni];


      
      
        21
      
      
        long
      
      
        long
      
      
         sphi[Ni];


      
      
        22
      
      
        void
      
       phi_table(
      
        int
      
      
         n)


      
      
        23
      
      
        {


      
      
        24
      
           phi[
      
        1
      
      ]=
      
        1
      
      
        ;


      
      
        25
      
      
        for
      
      (
      
        int
      
       i=
      
        2
      
      ;i<=n;i++) 
      
        if
      
      (!
      
        phi[i])


      
      
        26
      
      
            {


      
      
        27
      
      
        for
      
      (
      
        int
      
       j=i;j<=n;j+=
      
        i)


      
      
        28
      
      
                {


      
      
        29
      
      
        if
      
      (!(phi[j])) phi[j]=
      
        j;


      
      
        30
      
      
                    prime[j].push_back(i);


      
      
        31
      
                   phi[j]-=phi[j]/
      
        i;


      
      
        32
      
      
                }


      
      
        33
      
      
            }


      
      
        34
      
           sphi[
      
        0
      
      ]=
      
        0
      
      
        ;


      
      
        35
      
      
        for
      
      (
      
        int
      
       i=
      
        1
      
      ;i<=n;i++
      
        )


      
      
        36
      
      
            {


      
      
        37
      
               sphi[i]=sphi[i-
      
        1
      
      ]+
      
        phi[i];


      
      
        38
      
      
            }


      
      
        39
      
      
        }


      
      
        40
      
      
        int
      
       dfs(
      
        int
      
       x,
      
        int
      
       b,
      
        int
      
       k) 
      
        ///
      
      
        求0到b中,與k不互質的個數,x為k的第x個質數因子
      
      
        41
      
       {
      
        //
      
      
        容斥定理
      
      
        42
      
      
        int
      
       res=
      
        0
      
      
        ;


      
      
        43
      
      
        for
      
      (
      
        int
      
       i=x;i<prime[k].size();i++
      
        )


      
      
        44
      
               res+=b/prime[k][i]-dfs(i+
      
        1
      
      ,b/
      
        prime[k][i],k);


      
      
        45
      
      
        return
      
      
         res;


      
      
        46
      
      
        }


      
      
        47
      
      
        int
      
      
         main()


      
      
        48
      
      
        {


      
      
        49
      
      
        int
      
      
         t,i;


      
      
        50
      
      
        int
      
       a,b,c,d,k,cs=
      
        1
      
      
        ;


      
      
        51
      
           phi_table(
      
        100005
      
      
        );


      
      
        52
      
           scanf(
      
        "
      
      
        %d
      
      
        "
      
      ,&
      
        t);


      
      
        53
      
      
        for
      
      (cs=
      
        1
      
      ;cs<=t;cs++
      
        )


      
      
        54
      
      
            {


      
      
        55
      
               scanf(
      
        "
      
      
        %d%d%d%d%d
      
      
        "
      
      ,&a,&b,&c,&d,&
      
        k);


      
      
        56
      
      
        if
      
      (k==
      
        0
      
      ) {printf(
      
        "
      
      
        Case %d: 0\n
      
      
        "
      
      ,cs);
      
        continue
      
      
        ;}


      
      
        57
      
      
        58
      
               b/=k;d/=
      
        k;


      
      
        59
      
      
        if
      
      (b>
      
        d) swap(b,d);


      
      
        60
      
      
        long
      
      
        long
      
       ans=
      
        sphi[b];


      
      
        61
      
      
        for
      
      (i=b+
      
        1
      
      ;i<=d;i++
      
        )


      
      
        62
      
      
                {


      
      
        63
      
                   ans+=b-dfs(
      
        0
      
      
        ,b,i);


      
      
        64
      
      
                }


      
      
        65
      
               printf(
      
        "
      
      
        Case %d: %I64d\n
      
      
        "
      
      
        ,cs,ans);


      
      
        66
      
      
            }


      
      
        67
      
      
        return
      
      
        0
      
      
        ;


      
      
        68
      
       }
    

?

歐拉函數+容斥原理


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩欧美一级毛片精品6 | 久久久久成人精品一区二区 | 日韩欧美中文字幕出 | 日本激情啪啪 | 成人网18免费网站 | 久操视频免费 | 中文字幕在线视频不卡 | 在线播放波多野结衣 | 在线第一福利视频观看 | 91一区| 九九视频在线 | 久久久精品视频免费观看 | 99re热久久精品这里都是精品 | 亚洲欧美日韩国产精品 | 欧美一区二区三区婷婷月色 | 亚洲国产成人成上人色 | 欧美操片在线观看 | 中文字幕久精品免费视频蜜桃视频 | 国产凹凸在线一区二区色老头 | 久草久草视频 | 国产一区曰韩二区欧美三区 | 日本精品视频 | 伊色综合久久之综合久久 | 欧美亚洲免费 | 大伊香蕉精品视频在线天堂 | 亚洲精品久久久久久久福利 | aaa大片| 久久国产亚洲观看 | 亚洲男女在线 | 国产精品亚洲成在人线 | 国产精品自在欧美一区 | 99精品热线在线观看免费视频 | 黄色a∨ | 国产精品资源 | 国产一级毛片在线 | 伊人久久大香线焦综合四虎 | 一级毛片高清大全免费观看 | 亚洲视频在线一区二区 | 毛片啪啪视频 | 青娱乐91在线 | 91精品视频免费观看 |