BITSTR (DHBB 2021)

View as PDF

Submit solution

Points: 500.00
Time limit: 1.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Cho xâu ~𝑆~ gồm ~𝑛~ ký tự ~∈ {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 ~𝑆~ (đả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á ~𝑘~ chuỗi con 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 ~𝑆~ cần đảo.

Dữ liệu:

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

Kết quả: Gồm một số nguyên duy nhất là số ký tự ít nhất trong xâu ~𝑆~ cần đảo.

Ví dụ

INPUT 1

10 1
1000100011

OUTPUT 1

4

INPUT 2

6 2
010110

OUTPUT 2

2

Giải thích

  • Ở test 1, ta biến đổi thành xâu gồm toàn ký tự 0 0000000000
  • Ở test 2, ta có thể biến đổi thành 000111 hoặc 111110 hoặc 011111

Bộ test chia làm 5 subtasks:

  • Subtask 1 (20% số điểm): ~𝑛 ≤ 20~
  • Subtask 2 (20% số điểm): ~𝑛, 𝑘 ≤ 400~
  • Subtask 3 (20% số điểm): ~𝑛 ≤ 2*10^5; 𝑘 ≤ 400~
  • Subtask 4 (20% số điểm): ~𝑛 ≤ 2*10^5; 𝑘 ≤ 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.

Comments

Please read the guidelines before commenting.


There are no comments at the moment.