zoukankan      html  css  js  c++  java
  • D. Unusual Sequences 题解(容斥+质因子数量结论)

    题目链接

    题目思路

    一个重要结论就是(x)的因子个数最多(sqrt[ 3]{x })

    然后再随便容斥下即可

    代码

    #include<bits/stdc++.h>
    #define fi first
    #define se second
    #define debug cout<<"I AM HERE"<<endl;
    using namespace std;
    typedef long long ll;
    const ll INF=0x3f3f3f3f3f3f3f3f;
    const int maxn=4e3+5,inf=0x3f3f3f3f,mod=1e9+7;
    const double eps=1e-6;
    int x,y;
    int dp[maxn];
    ll qpow(ll a,ll b){
        ll ans=1,base=a;
        while(b){
            if(b&1) ans=ans*base%mod;
            base=base*base%mod;
            b=b>>1;
        }
        return ans;
    }
    int main(){
        cin>>x>>y;
        if(y%x!=0){
            printf("0
    ");
            return 0;
        }
        int k=y/x;
        vector<int> vec;
        for(ll i=1;i*i<=k;i++){
            if(k%i==0){
                vec.push_back(i);
                if(k/i!=i){
                    vec.push_back(k/i);
                }
            }
        }
        sort(vec.begin(),vec.end());
        for(int i=0;i<vec.size();i++){
            dp[i]=qpow(2,k/vec[i]-1);
        }
        int sz=vec.size();
        for(int i=sz-1;i>=0;i--){
            for(int j=i-1;j>=0;j--){
                if(vec[i]%vec[j]==0){
                    dp[j]-=dp[i];
                    dp[j]=(dp[j]%mod+mod)%mod;
                }
            }
        }
        printf("%d
    ",dp[0]);
        return 0;
    }
    
    
    不摆烂了,写题
  • 相关阅读:
    BZOJ3403: [Usaco2009 Open]Cow Line 直线上的牛
    lintcode入门篇三
    lintcode入门篇二
    lintcode入门篇一
    matplotlib
    Pandas
    Numpy
    缓存
    Django性能优化的几种方法
    python总结十一
  • 原文地址:https://www.cnblogs.com/hunxuewangzi/p/15109532.html
Copyright © 2011-2022 走看看