zoukankan      html  css  js  c++  java
  • BZOJ 4816 数字表格

    要是我生在SD多好啊。这题多良心啊。

    (为什么我还在写题呢)

    (我还得考一场NOIP233)

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define maxn 1000050
    #define mod 1000000007
    using namespace std;
    long long t,n,m,miu[maxn],f1[maxn],f2[maxn],g1[maxn],g2[maxn],ans,prime[maxn],tot=0;
    bool vis[maxn];
    long long f_pow(long long a,long long b)
    {
        long long ans=1,base=a;
        while (b)
        {
            if (b&1) ans=(ans*base)%mod;
            base=(base*base)%mod;
            b>>=1;
        }
        return ans;
    }
    void get_table()
    {
        miu[1]=1;
        for (long long i=2;i<=maxn-50;i++)
        {
            if (!vis[i])
            {
                vis[i]=true;miu[i]=-1;
                prime[++tot]=i;
            }
            for (long long j=1;j<=tot && i*prime[j]<=maxn-50;j++)
            {
                 vis[i*prime[j]]=true;
                 if (i%prime[j]) {miu[i*prime[j]]=-miu[i];continue;}
                 else {miu[i*prime[j]]=0;break;}
            }
        }
        f1[1]=f2[1]=g1[1]=g2[1]=1;g2[0]=1;
        for (long long i=2;i<=maxn-50;i++) {g1[i]=1;f1[i]=(f1[i-1]+f1[i-2])%mod;f2[i]=f_pow(f1[i],mod-2);}
        for (long long i=2;i<=maxn-50;i++)
            for (long long j=1;j*i<=maxn-50;j++)
            {
                if (miu[j]==-1) g1[i*j]=(g1[i*j]*f2[i])%mod;
                else if (miu[j]==1) g1[i*j]=(g1[i*j]*f1[i])%mod;
            }
        for (long long i=2;i<=maxn-50;i++) {g1[i]=(g1[i]*g1[i-1])%mod;g2[i]=f_pow(g1[i],mod-2);}
    }
    int main()
    {
        scanf("%lld",&t);get_table();
        for (long long i=1;i<=t;i++)
        {
            scanf("%lld%lld",&n,&m);
            ans=1;long long l=1,r=0;
            if (n>m) swap(n,m);
            while (l<=n)
            {
                r=min(n/(n/l),m/(m/l));
                ans=(ans*f_pow(g1[r]*g2[l-1]%mod,(n/l)*(m/l)%(mod-1)))%mod;
                l=r+1;
            }
            printf("%lld
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    python16_day18【Django_Form表单、分页】
    python16_day17【Django_session、ajax】
    django【orm操作】
    python16_day16【Django_ORM、模板】
    python16_day15【Django入门】
    python16_day14【jQuery】
    python16_day13【css、js】
    python16_day12【html、css】
    python16_day11【MQ、Redis、Memcache】
    python16_day10【SelectWeb、SelectWget、paramiko、pymysql】
  • 原文地址:https://www.cnblogs.com/ziliuziliu/p/6716453.html
Copyright © 2011-2022 走看看