Thay thế một phần

Đề bài

Mô tả

Cho số nguyên k và một xâu s độ dài n chỉ gồm hai ký tự '.' và ''. Bạn cần thay một số ký tự '' thành 'x' sao cho thoả mãn tất cả các điều kiện sau:

  • Ký tự '*' đầu tiên trong s phải được thay thành 'x'.
  • Ký tự '*' cuối cùng trong s phải được thay thành 'x'.
  • Khoảng cách giữa hai ký tự 'x' liền kề không được vượt quá k. Cụ thể, nếu bạn thay hai vị trí i và j (với i<j) thành 'x' và trong đoạn [i+1,j−1] không còn ký tự 'x' nào khác, thì j−i phải không vượt quá k.

Hãy tìm số lượng ít nhất các ký tự '*' cần thay thành 'x' để thoả mãn các điều kiện trên.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t: số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng:
    • Dòng thứ nhất chứa hai số nguyên n và k.
    • Dòng thứ hai chứa xâu s độ dài n chỉ gồm các ký tự '.' và '*'.

Dữ liệu bảo đảm trong s có ít nhất một ký tự '', và khoảng cách giữa hai ký tự '' liền kề bất kỳ không vượt quá k.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số lượng ít nhất các ký tự '*' cần thay thành 'x'.

Ràng buộc

  • 1≤t≤500
  • 1≤k≤n≤50

Ví dụ

Input Output Giải thích
5
7 3
.**.***
5 1
..*..
5 2
*.*.*
3 2
*.*
1 1
*
3
1
3
2
1
Bộ 1: một cách tối ưu là .xx.xxx (thay 3 ký tự). Bộ 2: chỉ có một '*' nên chỉ cần thay 1. Bộ 3: cần thay cả 3 vị trí vì k=2.
3
5 4
*****
5 2
*****
10 3
**********
2
3
4
Với k lớn, ta có thể bỏ qua bớt các '*' ở giữa: bộ 1 chỉ cần thay vị trí đầu và cuối (khoảng cách 4 ≤k).

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0