zoukankan      html  css  js  c++  java
  • BZOJ 3309: DZY Loves Math 莫比乌斯反演+打表

    有一个神奇的技巧——打表 

    code: 

    #include <bits/stdc++.h>  
    #define N 10000007 
    #define ll long long 
    #define setIO(s) freopen(s".in","r",stdin) 
    using namespace std;  
    int cnt;  
    int vis[N],prime[N],g[N],mu[N],nump[N],minp[N],qp[N];     
    void Initialize() 
    { 
        int i,j;    
        mu[1]=1; 
        for(i=2;i<N;++i) 
        {
            if(!vis[i]) 
            {
                prime[++cnt]=i;       
                nump[i]=1; 
                minp[i]=i;  
                qp[i]=i;  
                g[i]=1;    
            } 
            for(j=1;j<=cnt&&prime[j]*i<N;++j) 
            {
                vis[i*prime[j]]=1;    
                int k=i*prime[j];  
                if(i%prime[j]) 
                {       
                    nump[k]=1;   
                    qp[k]=minp[k]=prime[j];              
                    if(nump[i]==1) g[k]=-g[i];      
                } 
                else 
                {    
                    nump[k]=nump[i]+1;      
                    minp[k]=prime[j];   
                    qp[k]=qp[i]*prime[j];   
                    if(k==qp[k])  g[k]=1; 
                    else if(nump[k]==nump[k/qp[k]]) g[k]=-g[k/qp[k]];      
                    break;  
                }
            }     
        }
        for(i=2;i<N;++i)  g[i]+=g[i-1];  
    }
    void solve(int a,int b) 
    {  
        if(a>b) swap(a,b);  
        int i,j; 
        ll ans=0ll;  
        for(i=1;i<=a;i=j+1) 
        {
            j=min(a/(a/i),b/(b/i));     
            ans=ans+(ll)(a/i)*(b/i)*(g[j]-g[i-1]);    
        }
        printf("%lld
    ",ans);  
    }
    int main() 
    { 
        // setIO("input");  
        Initialize(); 
        int i,j,T;   
        scanf("%d",&T);  
        while(T--) 
        {
            int a,b; 
            scanf("%d%d",&a,&b); 
            solve(a,b);  
        }  
        return 0; 
    }
    

      

  • 相关阅读:
    数据库查询服务框架
    postgresql清理工具
    postgre索引
    SAP模块一句话入门(专业术语的理解)
    SAP订单结算详解
    SAP Datasheet
    ASP.NET MVC5 网站开发实践
    VMware S/4 HANA OP 1511虚拟机下载,64G内存限制解决方案
    SAP标准教材列表
    SAP文章链接
  • 原文地址:https://www.cnblogs.com/guangheli/p/12052800.html
Copyright © 2011-2022 走看看