为什么我自己算5000都对的上,提交还是只能过6个,祈求大佬

P1255 数楼梯

spirittingle @ 2024-12-07 14:31:42

#include<iostream>
using namespace std;
long long dp[100][5001];
const  long  long MOD=1000000000000000;;
int main()
{
    int n;
    cin>>n;

    dp[0][0]=1;
    dp[0][1]=2;
    for(int i=2;i<n;i++){

        dp[0][i]=(dp[0][i-1]+dp[0][i-2])%MOD;
        long long  c=(dp[0][i-1]+dp[0][i-2])/MOD;
        for(int k=1;k<100;k++){
            dp[k][i]=(c+dp[k][i-1]+dp[k][i-2])%MOD;
            c=(c+dp[k][i-1]+dp[k][i-2])/MOD;
        }

    }
    for(int i=99;i>=0;i--){
        if(dp[i][n-1]>0){
            for(int j=i;j>=0;j--){
                cout<<dp[j][n-1];
            }
            break;
        }
    }
   return 0; 
}

by spirittingle @ 2024-12-07 14:38:40

@yzm0325 我没看到取模啊,我太蠢了


by spirittingle @ 2024-12-07 14:44:31

@yzm0325 我输出没有取模哇,我是一个一个 long long 表示15位,5000算出来1080位,我也输出的1080位


|