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