Editorial for Xoay ký tự


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Author: Yunan

Để tạo chuỗi có thứ tự từ điển nhỏ nhất, cần ưu tiên xoay ký tự ở các vị trí đầu tiên sang ký tự a. Ta tiến hành duyệt qua các ký tự của S:

  • Nếu ký tự thứ i khác a và số lần xoay ít nhất để chuyển ký tự sang a nhỏ hơn hoặc bằng giá trị K thì tiến hành các thao tác ở ký tự này để chuyển nó sang a, đồng thời giảm giá trị K đi một lượng bằng số lần thao tác.
  • Ngược lại, không cần thực hiện thao tác ở ký tự thứ i.

Sau khi duyệt qua các ký tự của S, ta chỉ cần tiến hành K thao tác còn lại trên ký tự cuối cùng của chuỗi.

Độ phức tạp: O(|S|)


Comments