思路:
模拟。
实现:
1 #include <iostream> 2 using namespace std; 3 const int MOD = 998244353; 4 char a[200005], b[200005]; 5 int sum[200005]; 6 int main() 7 { 8 int n, m; 9 while (cin >> n >> m) 10 { 11 for (int i = n - 1; i >= 0; i--) cin >> a[i]; 12 for (int i = m - 1; i >= 0; i--) 13 { 14 cin >> b[i]; 15 sum[i] = sum[i + 1] + b[i] - '0'; 16 } 17 long long ans = 0, pw = 1; 18 for (int i = 0; i < n; i++) 19 { 20 if (a[i] == '1') 21 ans = (ans + (sum[i] * pw) % MOD) % MOD; 22 pw = pw * 2 % MOD; 23 } 24 cout << ans << endl; 25 } 26 return 0; 27 }