• 1101: [POI2007]Zap


    Description

      FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a
    ,y<=b,并且gcd(x,y)=d。作为FGD的同学,FGD希望得到你的帮助。

    Input

      第一行包含一个正整数n,表示一共有n组询问。(1<=n<= 50000)接下来n行,每行表示一个询问,每行三个
    正整数,分别为a,b,d。(1<=d<=a,b<=50000)

    Output

      对于每组询问,输出到输出文件zap.out一个正整数,表示满足条件的整数对数。

    Sample Input

    2
    4 5 2
    6 4 3

    Sample Output

    3
    2
    //对于第一组询问,满足条件的整数对有(2,2),(2,4),(4,2)。对于第二组询问,满足条件的整数对有(
    6,3),(3,3)。
     
    第一次写莫比乌斯反演,膜题解,,,
    欧拉筛法预处理
     
     
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 
     6 const int MAXN=50005;
     7 int mu[MAXN],prime[MAXN],cnt=0;
     8 bool mk[MAXN];
     9 
    10 void Prime()
    11 {
    12     mu[1]=1;
    13     for(int i=2;i<MAXN;i++)
    14     {
    15         if(!mk[i])
    16         {
    17             prime[cnt++]=i;
    18             mu[i]=-1;
    19         }
    20         for(int j=0;j<cnt&&i*prime[j]<MAXN;j++)
    21         {
    22             mk[i*prime[j]]=1;
    23             if(i%prime[j]) mu[i*prime[j]]=-mu[i];
    24             else break;
    25         }
    26     }
    27     for(int i=1;i<MAXN;i++)
    28         mu[i]+=mu[i-1];
    29 }
    30 
    31 int ques(int a,int b)
    32 {
    33     if(a>b) swap(a,b);
    34     int ans=0;
    35     for(int i=1;i<=a;i++)
    36     {
    37         int j=min(a/(a/i),b/(b/i));
    38         ans+=(mu[j]-mu[i-1])*(a/i)*(b/i);
    39         i=j;
    40     }
    41     return ans;
    42 }
    43 
    44 int main()
    45 {
    46     Prime();
    47     int T;
    48     scanf("%d",&T);
    49     while(T--)
    50     {
    51         int a,b,c;
    52         scanf("%d%d%d",&a,&b,&c);
    53         printf("%d
    ",ques(a/c,b/c));
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    【Flask项目】 python学习第一章
    【Oracle】整理oracle命令 转载
    C# 利用SQLite对.DB和.logdb加密和解密和SQLite创建数据库
    C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩
    Django Cookie 和 Sessions 应用
    Django中添加富文本编辑器
    Django实现简单分页功能
    Xadmin集成富文本编辑器ueditor
    Django安装Xadmin步骤
    Pycharm小技巧--使用正则进行查找和批量替换
  • 原文地址:https://www.cnblogs.com/InWILL/p/10756966.html
Copyright © 2020-2023  润新知