1 solutions

  • 0
    @ 2025-12-10 19:07:52
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    int sz[1001][5001],qzh[1001][5001];
    signed main(){
        int n,m,k;
        cin>>n>>m>>k;
          for(int i=1;i<=m;i++){
            sz[1][i]=1;
        }
    for(int i = 0; i <= n; i++){
            qzh[i][0] = 0;
        }
        for(int i=1;i<=m;i++){
            qzh[1][i]=qzh[1][i-1]+sz[1][i];
        }
        for(int i=2;i<=n;i++){
            for(int j=1;j<=m;j++){
                sz[i][j]=0;
                if (k==0)  {
                    sz[i][j]=qzh[i-1][m];
                }else{
     if(j+k<=m)
            {
                sz[i][j]+=(qzh[i-1][m]-qzh[i-1][j+k-1]+998244353)%998244353;
                sz[i][j]%= 998244353;
            }
            if(j-k>=1){
                  sz[i][j]+=qzh[i-1][j-k]%998244353;
                    sz[i][j]%= 998244353;;
            }
    
                }
           
            
        }
      for(int j=1;j<=m;j++){
        qzh[i][j]=qzh[i][j-1]+sz[i][j];
    qzh[i][j]%= 998244353;
    }
        }
    
         cout<<qzh[n][m];
    }
    
    
    
    
    
    • 1

    Information

    ID
    584
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    7
    Tags
    (None)
    # Submissions
    42
    Accepted
    9
    Uploaded By