Biến đổi xâu nhị phân

Đề bài

Mô tả

Cho hai xâu nhị phân sf cùng độ dài n, và một danh sách gồm q ngày. Vào ngày thứ i, đoạn từ vị trí li đến vị trí ri của xâu s sẽ bị kiểm tra: nếu đoạn này chứa đồng thời cả ký tự '0' và ký tự '1' thì cuộc kiểm tra thất bại ngay lập tức.

Sau cuộc kiểm tra của ngày thứ i, vào đêm thứ i, bạn được phép thay đổi giá trị của một số ký tự trong đoạn [li,ri], nhưng số ký tự bị thay đổi phải ít hơn một nửa độ dài đoạn (tức là thay đổi ít hơn rili+12 ký tự).

Hỏi có cách thay đổi sao cho tất cả q cuộc kiểm tra đều thành công (mỗi đoạn bị kiểm tra đều chỉ gồm toàn '0' hoặc toàn '1' tại thời điểm kiểm tra), và sau đêm thứ q xâu s trở thành đúng bằng xâu f hay không?

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa hai số nguyên n,q.
    • Dòng thứ hai chứa xâu nhị phân s độ dài n.
    • Dòng thứ ba chứa xâu nhị phân f độ dài n.
    • q dòng tiếp theo, dòng thứ i chứa hai số nguyên li,ri.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra "YES" nếu có thể thực hiện được, ngược lại in ra "NO".

Ràng buộc

  • 1t2·105
  • 1n2·105, 0q2·105
  • 1lirin
  • Tổng của n trên tất cả các bộ dữ liệu không vượt quá 2·105; tổng của q cũng không vượt quá 2·105.

Ví dụ

Input Output Giải thích
1
4 1
0011
0011
1 4
NO Ngay ngày đầu, đoạn [1,4] của s = 0011 chứa cả '0' và '1' nên cuộc kiểm tra thất bại.
1
4 1
0011
0011
4 4
YES Đoạn [4,4] chỉ gồm ký tự '1' nên kiểm tra thành công. Đêm đó chỉ được đổi ít hơn 0.5 ký tự, tức không đổi gì, và s đã bằng f.
1
4 1
1111
0011
1 4
NO Đoạn [1,4] = 1111 đồng nhất nên kiểm tra thành công, nhưng đêm đó chỉ được đổi tối đa 1 ký tự, không thể biến 1111 thành 0011 (cần đổi 2 ký tự).

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