Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33718 | 李羽乔 | 【S】T1 | C++ | 通过 | 100 | 57 MS | 16860 KB | 665 | 2024-10-20 14:55:02 |
#include<bits/stdc++.h> using namespace std; const int N = 1e6+10,md = 998244353; #define int long long int n,dp[N][2]; char s[N]; signed main(){ //freopen("pairfix.in","r",stdin); //freopen("pairfix.out","w",stdout); char c; while(cin>>c){ s[++n]=c; } dp[1][0]=1; dp[1][1]=2; for(int i=2;i<=n;i++){ if(s[i]=='0'){ dp[i][0]=dp[i-1][0]%md*3%md; dp[i][1]=dp[i-1][1]%md*2%md; } else{ dp[i][0]=(dp[i-1][0]%md*3%md+dp[i-1][1]%md*2%md)%md; dp[i][1]=dp[i-1][1]; } } cout<<(dp[n][1]+dp[n][0])%md<<endl; return 0; }