trang chủ / đề bài / dhbb21_11_bitstr

Xâu nhị phân

Đề bài

Mô tả

Cho xâu S gồm n ký tự si∈{0,1} và số tự nhiên k. Hãy tìm cách đảo một số ít nhất các ký tự của chuỗi S (đảo ký tự 0 thành ký tự 1 hoặc ngược lại) sao cho chuỗi kết quả có thể được phân tách thành không quá k chuỗi con (gồm các ký tự liên tiếp) mà mỗi chuỗi con chỉ chứa các ký tự 0 hoặc chỉ chứa các ký tự 1.

Yêu cầu: Cho biết số ký tự ít nhất trong xâu S cần đảo.

Dữ liệu vào

  • Dòng 1 chứa hai số nguyên dương n,k≤2·105 cách nhau bởi dấu cách.
  • Dòng 2 ghi xâu S (gồm n ký tự ∈{0,1} viết liền nhau).

Dữ liệu ra

In ra một số nguyên duy nhất là số ký tự ít nhất trong xâu S cần đảo.

Ràng buộc

  • 1≤n,k≤2·105.
  • Mỗi ký tự của S là 0 hoặc 1.

Subtasks

  • Subtask 1 (20% số điểm): n≤20.
  • Subtask 2 (20% số điểm): n,k≤400.
  • Subtask 3 (20% số điểm): n≤2·105; k≤400.
  • Subtask 4 (20% số điểm): n≤2·105; k≤5000.
  • Subtask 5 (20% số điểm): không có ràng buộc bổ sung ngoài các ràng buộc đã nêu trong đề bài.

Ví dụ

Input Output Giải thích
10 1
1000100011
4 Biến đổi thành xâu gồm toàn ký tự 0: 0000000000.
6 2
010110
2 Biến đổi thành 000111 hoặc 111110 hoặc 011111.

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