Hướng dẫn cho Vua Mật Mã


Chỉ sử dụng khi thực sự cần thiết như một cách tôn trọng tác giả và người viết hướng dẫn này.

Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.

Authors: ami

Có thể giải bài này bằng cách tham lam. Hãy tạo xâu kết quả \(KQ\) bằng cách sau :

\(\quad\) \(\quad\) Bước 1 : Hãy thử từng kí tự \(c\)\(cnt_c \geq 1\) theo thứ tự tăng dần của \(c\).

\(\quad\) \(\quad\) Bước 2 : Giả sử ta đã tạo được một số kí tự của xâu \(KQ\), kí tự \(c\) sẽ được chọn nếu \(KQ + c + max \geq S\). \(max\) là xâu kí tự có thứ tự lớn nhất được tạo từ các kí tự còn lại của mảng \(cnt_{char}\).

\(\quad\) \(\quad\) Bước 3 : Sau bước 2, ta đã chọn được kí tự \(c\), nối \(c\) vào \(KQ\), giảm \(cnt_c\) đi 1. Nếu \(KQ > S\), in ra \(KQ\). Nếu \(KQ = S\), quay lại bước 1. Nếu \(KQ < S\), in ra \(-1\).



Bình luận

Không có bình luận nào.