2 条题解

  • 0
    @ 2025-10-8 17:11:49
    #include <cstdio>
    
    int m,t;
    long long n,a1,f[5000005];
    
    int main() {
        scanf("%lld%d",&n,&m);
        for(int i=0;i<=m;i++) f[i]=1;
        for(int i=m+1;;i++) {
            f[i]=f[i-1]+f[i-m];
            if(f[i]>n) {t=i-1; break;}
        }
        for(int i=t;n;i--) if(f[i]<=n) n-=f[i],a1+=f[i-1];
        printf("%lld",a1);
        return 0;
    }
    

    • 0
      @ 2025-10-8 17:11:43
      #include <cstdio>
      
      int m,t;
      long long n,a1,f[5000005];
      
      int main() {
          scanf("%lld%d",&n,&m);
          for(int i=0;i<=m;i++) f[i]=1;
          for(int i=m+1;;i++) {
              f[i]=f[i-1]+f[i-m];
              if(f[i]>n) {t=i-1; break;}
          }
          for(int i=t;n;i--) if(f[i]<=n) n-=f[i],a1+=f[i-1];
          printf("%lld",a1);
          return 0;
      }

      • 1

      信息

      ID
      6595
      时间
      1000ms
      内存
      128MiB
      难度
      10
      标签
      递交数
      2
      已通过
      1
      上传者