2 条题解

  • 0
    @ 2025-10-8 16:54:03
    #include<bits/stdc++.h>
    #define LL long long
    using namespace std;
    const LL mod=1e8+7;
    LL qpow(LL a, LL b)
    {
        LL res=1; 
        for(a%=mod;b;b>>=1,a=a*a%mod)if(b&1)res=res*a%mod;
        return res;
    }
    LL f[70][70],c[70],d[70];
    //f[i][j]表示i位含j个1的方案数 
    //c[i]表示有i个1的数有多少个 
    int main()
    {
        int D=log2(1e15)+1;
        d[0]=1;for(int i=1;i<=D;i++)d[i]=d[i-1]*2;
        for(int i=0;i<=D;i++)f[i][0]=1;
        for(int i=1;i<=D;i++)for(int j=1;j<=i;j++)f[i][j]=f[i-1][j-1]+f[i-1][j];
        LL n,t=0;scanf("%lld",&n);
        n=(n+1)/2;
        for(int i=D;i>=0;i--)
        {
            if(n>=d[i])
            {
                n-=d[i];
                t++;
                for(int j=0;j<=i;j++)c[t+j]+=f[i][j];
            }
        }
        LL ans=1;
        for(int i=1;c[i];i++)ans=ans*qpow(i,c[i])%mod;
        printf("%lld\n",ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:53:52
      #include<bits/stdc++.h>
      #define LL long long
      using namespace std;
      const LL mod=1e8+7;
      LL qpow(LL a,LL b)
      {
          LL res=1; 
          for(a%=mod;b;b>>=1,a=a*a%mod)if(b&1)res=res*a%mod;
          return res;
      }
      LL f[70][70],c[70],d[70];
      //f[i][j]表示i位含j个1的方案数 
      //c[i]表示有i个1的数有多少个 
      int main()
      {
      	int D=log2(1e15)+1;
          d[0]=1;for(int i=1;i<=D;i++)d[i]=d[i-1]*2;
          for(int i=0;i<=D;i++)f[i][0]=1;
          for(int i=1;i<=D;i++)for(int j=1;j<=i;j++)f[i][j]=f[i-1][j-1]+f[i-1][j];
          LL n,t=0;scanf("%lld",&n);
          n=(n+1)/2;
          for(int i=D;i>=0;i--)
          {
              if(n>=d[i])
              {
                  n-=d[i];
                  t++;
                  for(int j=0;j<=i;j++)c[t+j]+=f[i][j];
              }
          }
          LL ans=1;
          for(int i=1;c[i];i++)ans=ans*qpow(i,c[i])%mod;
          printf("%lld\n",ans);
          return 0;
      }
      • 1

      *【DP状态设计】TYB的数学难题(好题)

      信息

      ID
      784
      时间
      1000ms
      内存
      128MiB
      难度
      9
      标签
      递交数
      7
      已通过
      6
      上传者