2 solutions
-
1
最简写法:
#include<bits/stdc++.h> using namespace std; const int P=998244353; const int N=1e6+10; int f[N][15]; int main(){ int n; cin>>n; for(int i=1;i<=9;i++)f[1][i]=1; for(int i=2;i<=n;i++){ for(int j=1;j<=9;j++){ for(int k=max(1,j-1);k<=min(9,j+1);k++){ f[i][k]+=f[i-1][j]; f[i][k]%=P; } } } int res=0; for(int i=1;i<=9;i++){ res+=f[n][i]; res%=P; } cout<<res; } -
-1
#include<bits/stdc++.h> using namespace std; long long n,dp[1000010][9],mod=998244353,ans; int main() { cin>>n; for(int i=1;i<=9;i++) { dp[1][i]=1; } for(int i=2;i<=n;i++) { for(int j=1;j<=9;j++) { if(j==1) { dp[i][j]=dp[i-1][j]+dp[i-1][j+1]; } else if(j==9) { dp[i][j]=dp[i-1][j]+dp[i-1][j-1]; } else { dp[i][j]=dp[i-1][j-1]+dp[i-1][j]+dp[i-1][j+1]; } dp[i][j]%=mod; } } for(int i=1;i<=9;i++) { ans=(ans+dp[n][i])%mod; } cout<<ans; return 0; }
- 1
Information
- ID
- 2791
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 14
- Accepted
- 6
- Uploaded By