提交时间:2024-10-20 14:46:14
运行 ID: 33713
#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; }