Xâu con RGB (bản dễ)

Đề bài

Mô tả

Cho một xâu s gồm n ký tự, mỗi ký tự là một trong ba chữ 'R', 'G' hoặc 'B'.

Cho thêm một số nguyên k. Nhiệm vụ của bạn là thay đổi số ký tự ít nhất trong xâu s sao cho sau khi thay đổi, xâu s chứa một xâu con độ dài k đồng thời cũng là một xâu con của xâu vô hạn "RGBRGBRGB...".

Một xâu a được gọi là xâu con của xâu b nếu tồn tại một chỉ số i sao cho a1=bi, a2=bi+1, , a|a|=bi+|a|1 (nghĩa là a là một đoạn liên tiếp của b). Ví dụ, các xâu "GBRG", "B", "BR" là xâu con của "RGBRGBRGB...", còn "GR", "RGR", "GGG" thì không.

Mỗi lần thay đổi, bạn chọn một vị trí và đổi ký tự tại đó thành 'R', 'G' hoặc 'B' bất kỳ. Bạn cần trả lời q truy vấn độc lập.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên q là số truy vấn. Sau đó là q truy vấn.
  • Mỗi truy vấn gồm hai dòng:
    • Dòng thứ nhất chứa hai số nguyên nk.
    • Dòng thứ hai chứa xâu s độ dài n gồm các ký tự 'R', 'G', 'B'.

Dữ liệu ra

Với mỗi truy vấn, in ra trên một dòng số ký tự ít nhất cần thay đổi để trong s xuất hiện một xâu con độ dài k cũng là xâu con của xâu vô hạn "RGBRGBRGB...".

Ràng buộc

  • 1q2000
  • 1kn2000
  • Tổng của n trên tất cả các truy vấn không vượt quá 2000.

Ví dụ

Input Output Giải thích
3
5 2
BGGGG
5 3
RBRGR
5 5
BBBRR
1
0
3
Truy vấn 1: đổi ký tự đầu thành 'R' được "RG", hoặc đổi ký tự thứ hai thành 'R' được "BR", chỉ cần 1 thay đổi. Truy vấn 2: đoạn "BRG" đã là xâu con của "RGBRGB...", cần 0 thay đổi. Truy vấn 3: cần thay 3 ký tự để có được một đoạn độ dài 5.
1
18 7
BGGGGBBRRGBBRGGGBR
4 Với k=7, đoạn tốt nhất cần thay đúng 4 ký tự để khớp một đoạn của "RGBRGB...".

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