• 【BZOJ2820】ygy的gcd


    不知道为什么不想写总结,只是(因为是用别人的权限号交的所以)屯一个代码

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 using namespace std;
     7 #define ll long long
     8 const ll inf=(ll)2e9;
     9 ll rd(){ll z=0,mk=1;  char ch=getchar();
    10     while(ch<'0'||ch>'9'){if(ch=='-')mk=-1;  ch=getchar();}
    11     while(ch>='0'&&ch<='9'){z=(z<<3)+(z<<1)+ch-'0';  ch=getchar();}
    12     return z*mk;
    13 }
    14 void wt(ll x){if(x<0)  putchar('-'),x=-x;
    15     int wtp=0;  char wtc[52];
    16     while(x)  wtc[++wtp]=(x%10)+'0',x/=10;
    17     while(wtp)  putchar(wtc[wtp--]);
    18 }
    19 int n,m;
    20 int miu[11000000],prm[11000000],prp=0;  bool prg[11000000];
    21 ll f[11000000],s[11000000];
    22 void gtmiu(){
    23     memset(prg,0,sizeof(prg));
    24     miu[1]=1;
    25     for(int i=2;i<=10000000;++i){
    26         if(!prg[i])  prm[++prp]=i,miu[i]=-1;
    27         for(int j=1;j<=prp && prm[j]*i<=10000000;++j){
    28             prg[i*prm[j]]=true;
    29             if(!(i%prm[j])){  miu[i*prm[j]]=0;  break;}
    30             miu[i*prm[j]]=-miu[i];
    31         }
    32     }
    33     for(int i=1;i<=prp;++i)for(int j=1;j*prm[i]<=10000000;++j)
    34         f[j*prm[i]]+=miu[j];
    35     for(int i=1;i<=10000000;++i)  s[i]=s[i-1]+f[i];
    36 }
    37 int main(){
    38     //freopen("ddd.in","r",stdin);
    39     gtmiu();
    40 int T;  cin>>T;  while(T--){
    41     n=rd(),m=rd();
    42     ll ans=0;
    43     if(n>m)  swap(n,m);
    44     for(int i=1,j;i<=n;i=j+1){
    45         j=min(n/(n/i),m/(m/i));
    46         ans+=(s[j]-s[i-1])*(n/i)*(m/i);
    47     }
    48     wt(ans),putchar('
    ');
    49     continue;
    50 }
    51     return 0;
    52 }
    View Code
  • 相关阅读:
    小米面试之股票收益最大
    第三周:同时管理64位和32位版本的Python,并用Pyinstaller打包成exe
    第三周 anaconda的安装
    第二周:python实现线性回归(哑变量回归)的高效方法
    第一周:在python里调用C文件中函数
    13G:神奇的数列
    13F:图像分割
    13E:吃奶酪
    13D:拖延症
    13B:回文子串
  • 原文地址:https://www.cnblogs.com/JSL2018/p/6789464.html
Copyright © 2020-2023  润新知