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;
    }
  • 相关阅读:
    RabbitMQ安装
    windows下安装Erlang
    利用StopWatch类监控Java代码执行时间并分析性能
    HttpClinet工具类
    Javap与JVM指令
    idea全局护眼色绿豆沙
    删除注册在Eureka的服务(无效,多余)
    Steam之两个list间交集、并集、差集
    微服务与SpringCloud简介
    VS code 豆沙绿护眼主题
  • 原文地址:https://www.cnblogs.com/ziliuziliu/p/6716453.html
Copyright © 2011-2022 走看看