1 solutions
-
0
#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