Notice
Chào mừng bạn đến với OREOJ !

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.

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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.