Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33714 | hi_hi | 【S】T1 | C++ | 运行出错 | 0 | 4 MS | 268 KB | 505 | 2024-10-20 14:46:44 |
#include<bits/stdc++.h> using namespace std; string n; long long dp[1000006][3]; int main(){ freopen("hi.in","r",stdin); freopen("hi.out","w",stdout); 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])%998244353); return 0; }