Hướng dẫn giải của [TS10 Tuyên Quang 2025 - 2026] Đoạn con chung
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.
Cố định đoạn chung độ dài ~H~ bắt đầu tại ~i~. Khi đó ~S_1~ là tổng đoạn ~[i,i+H-1]~.
Để ~S_1-S_2~ nhỏ nhất, phần mở rộng bên trái và bên phải phải có tổng lớn nhất có thể. Gọi:
- ~F_1[i]~ là tổng lớn nhất của đoạn con kết thúc tại ~i~, cho phép đoạn rỗng nên không âm.
- ~F_2[i]~ là tổng lớn nhất của đoạn con bắt đầu tại ~i~, cho phép đoạn rỗng nên không âm.
Dùng tổng tiền tố để lấy ~S_1~ trong ~O(1)~, rồi xét mọi vị trí ~i~:
~ans = \min(S_1 - F_1[i-1] - F_2[i+H])~.
Độ phức tạp ~O(N)~.
Bình luận