Tổng phép AND nhị phân

Đề bài

Mô tả

Cho hai số nguyên nhị phân rất lớn ab có độ dài lần lượt là nm.

Ta thực hiện quá trình sau: chừng nào b>0, cộng vào kết quả giá trị a&b (phép AND theo bit của ab), rồi chia b cho 2 và lấy phần nguyên (tức xóa chữ số cuối cùng của b); lặp lại cho đến khi b=0.

Giá trị a&b được cộng vào kết quả dưới dạng số thập phân, không phải nhị phân. Ví dụ nếu a=10102 (1010)b=10002 (810) thì a&b=8, không phải 1000.

Hãy tính tổng kết quả theo modulo 998244353.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: độ dài của ab.
  • Dòng thứ hai chứa số nhị phân a gồm đúng n chữ số 0/1, chữ số đầu luôn là 1.
  • Dòng thứ ba chứa số nhị phân b gồm đúng m chữ số 0/1, chữ số đầu luôn là 1.

Dữ liệu ra

  • In ra một số nguyên: tổng kết quả theo modulo 998244353 (dưới dạng thập phân).

Ràng buộc

  • 1n,m2·105

Ví dụ

Input Output Giải thích
4 4
1010
1101
12 1010&1101=10002=8, rồi b=110: 1010&110=102=2, rồi b=11: 1010&11=2, rồi b=1: 1010&1=0. Tổng 8+2+2+0=12.
4 5
1001
10101
11 Các bước cho 1+8+1+0+1=11.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0