Tổng khoảng cách Hamming

Đề bài

Mô tả

Khoảng cách Hamming giữa hai xâu nhị phân st có cùng độ dài được định nghĩa là

d(s,t)=i=1|s||siti|,

trong đó si, ti là ký tự thứ i của st (được xem như chữ số 0 hoặc 1). Nói cách khác, đó là số vị trí mà hai xâu khác nhau.

Cho hai xâu nhị phân ab với |a||b|. Hãy tính tổng khoảng cách Hamming giữa atất cả các xâu con liên tiếp của b có độ dài |a|.

Các xâu con liên tiếp được đếm theo vị trí xuất hiện: nếu hai xâu con ở hai vị trí khác nhau mà giống hệt nhau thì vẫn được tính hai lần. Tổng cộng có đúng |b||a|+1 xâu con cần xét.

Dữ liệu vào

  • Dòng đầu tiên chứa xâu nhị phân a.
  • Dòng thứ hai chứa xâu nhị phân b.

Dữ liệu ra

Một số nguyên duy nhất: tổng khoảng cách Hamming cần tìm.

Ràng buộc

  • 1|a|200000
  • |a||b|200000
  • ab chỉ gồm các ký tự '0' và '1'.

Ví dụ

Input Output Giải thích
01
00111
3 Bốn xâu con độ dài 2 của b là 00, 01, 11, 11. Khoảng cách tới 01 lần lượt là 1, 0, 1, 1. Xâu 11 xuất hiện hai lần nên được tính hai lần. Tổng bằng 1+0+1+1=3.
0011
0110
2 Chỉ có một xâu con độ dài 4 là chính b. Ta có d(0011,0110)=0+1+0+1=2.
1
0
1 Cả hai xâu đều có độ dài 1, chúng khác nhau nên khoảng cách bằng 1.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0