Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
35177 | liuziming | 【S】T2 | C++ | 解答错误 | 0 | 16 MS | 45568 KB | 934 | 2024-11-28 15:33:41 |
#include<bits/stdc++.h> using namespace std; #define int long long #define mod 998244353 int n,dp[2010][2010],g[2010][2010]; string s; signed main(){ cin>>n; cin>>s; dp[0][0]=1; //cout<<n<<'\n'; for(int i=1;i<=n;i++){ //cout<<s[i-1]<<' '; if(s[i]=='0'){ int sum=dp[i-1][0]; for(int j=1;j<=i;j++){ dp[i][j]=(dp[i][j]+dp[i-1][j-1]*(j-1)+sum)%mod; sum=(sum+dp[i-1][j])%mod; } }else{ for(int j=0;j<=i;j++){ dp[i][j]=(dp[i][j]+dp[i-1][j]*(i-j))%mod; } } }int ans=0; // for(int i=1;i<=n;i++){ // for(int j=1;j<=n;j++){ // cout<<dp[i][j]<<' '; // }cout<<'\n'; // }for(int i=1;i<=n;i++){ // cout<<g[i]<<' '; // } for(int i=0;i<=n;i++){ ans=(ans+dp[n][i])%mod; }cout<<ans<<'\n'; }