Hướng dẫn giải của Gợi ý từ
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Lời giải: Gợi ý từ
Hướng tiếp cận
Sắp xếp từ điển theo thứ tự từ điển, sau đó dùng tìm kiếm nhị phân để xác định từ đầu tiên khớp với tiền tố. Từ thứ theo thứ tự từ điển chính là phần tử ở vị trí .
Nhận xét quan trọng
- Sau khi sắp xếp từ điển, tất cả các từ bắt đầu bằng tiền tố tạo thành một đoạn liên tục trong mảng đã sắp xếp.
- Từ thứ khớp với chính là phần tử ở chỉ số . Ta chỉ cần kiểm tra xem phần tử đó có thực sự bắt đầu bằng không.
- Cần lưu lại chỉ số gốc (1-based) của mỗi từ trước khi sắp xếp.
Thuật toán
- Đọc từ, lưu kèm chỉ số gốc.
- Sắp xếp từ theo thứ tự từ điển.
- Với mỗi truy vấn :
- Dùng
lower_boundtìm vị trí đầu tiên . - Kiểm tra phần tử ở vị trí có bắt đầu bằng không.
- Nếu có: in ra chỉ số gốc. Nếu không: in ra .
- Dùng
Độ phức tạp
- Thời gian: với là độ dài tiền tố tối đa.
- Bộ nhớ:
Bình luận