Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33713 | hi_hi | 【S】T1 | C++ | 解答错误 | 80 | 33 MS | 26596 KB | 431 | 2024-10-20 14:46:14 |
#include<bits/stdc++.h> using namespace std; string n; long long dp[1000006][3]; int main(){ cin>>n; long long l=n.length()-1; dp[0][0]=1,dp[0][1]=2; for(int i=1;i<=l;i++){ if(n[i]=='0'){ dp[i][1]=(dp[i-1][1]*2)%998244353; dp[i][0]=(dp[i-1][0]*3)%998244353; } else{ dp[i][1]=dp[i-1][1]; dp[i][0]=(dp[i-1][1]*2+dp[i-1][0]*3)%998244353; } } printf("%lld",dp[l][0]+dp[l][1]); return 0; }