• HDU 4135 容斥原理


    思路:

    直接容斥

    //By SiriusRen
    #include <cstdio>
    using namespace std;
    #define int long long
    const int N=100050;
    int cases,a,b,n,tp,s[N];
    int solve(int r){
        int ans=0;
        for(int i=1;i<(1<<tp);i++){
            int tmp=1,t=0;
            for(int j=0;j<tp;j++)
                if(i&(1<<j))tmp*=s[j],t++;
            t=t&1?1:-1;
            ans+=r/tmp*t;
        }
        return r-ans;
    }
    signed main(){
        scanf("%lld",&cases);
        for(int I=1;I<=cases;I++){
            tp=0;
            scanf("%lld%lld%lld",&a,&b,&n);
            for(int i=2;i*i<=n;i++){
                if(n%i)continue;
                while(n%i==0)n/=i;
                s[tp++]=i;
            }if(n!=1)s[tp++]=n;
            printf("Case #%lld: %lld
    ",I,solve(b)-solve(a-1));
        }
    }
  • 相关阅读:
    测光
    闪光灯
    快门
    光圈
    白加黑减
    曝光补偿
    取景雷区
    着眼点
    Web中的无状态含义
    图计算模型[转]
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/9401624.html
Copyright © 2020-2023  润新知