You are on page 1of 1

AVGARR

Nhận xét: Xét một đoạn con 𝐴[𝐿. . 𝑅 ] bất kỳ, đoạn con 𝐴[𝐿. . 𝑅] thỏa mãn khi:
𝐴 +𝐴 +⋯+ 𝐴
≥𝑃
𝑅−𝐿+1
⟺𝐴 +𝐴 + ⋯ + 𝐴 ≥ 𝑃 (𝑅 − 𝐿 + 1 ) = 𝑃 + 𝑃 + ⋯ + 𝑃

⟺ (𝐴 − 𝑃 ) + (𝐴 − 𝑃 ) + ⋯ + (𝐴 − 𝑃 ) ≥ 0
Do đó, ta sẽ trừ đi 𝑃 cho từng phần tử và trở về bài toán tìm số lượng đoạn con có tổng không
âm.
Gọi 𝐵 = 𝐴 − 𝑃 và 𝑆 = 𝐵 + 𝐵 + ⋯ + 𝐵 với 𝑖 = 1, 2, … , 𝑁
Ta có: 𝐵 + 𝐵 + ⋯+ 𝐵 = 𝑆 − 𝑆 ≥0⟺𝑆 ≤𝑆
Bài toán trở về dạng bài đếm số lượng chỉ số 𝐿 (𝐿 ≤ 𝑅) sao cho tổng không vượt quá 𝑆 với 𝑅
chạy từ 1 đến 𝑁.
Phương pháp giải: Rời rạc hóa và CTDL (Fenwick Tree hoặc Segment Tree)
Độ phức tạp: 𝑂(𝑁𝑙𝑜𝑔𝑁)
CONTRAST
Tham khảo solution: Codeforces 689D – Friends And Subsequences
Lưu ý: Phương pháp RMQ chỉ có thể áp dụng được đến subtask 3. Subtask 4 ta cần phải sử
dụng 2 deque tịnh tiến cho mỗi mảng.
Độ phức tạp: 𝑂(𝑁)
PFSQUARE
Tham khảo solution: Free Contest 80 – DIVQUERY
https://drive.google.com/drive/folders/1bR2xAoAjQKaCC6Xbf3sdrW7uQAho-
Qpo?fbclid=IwAR2x7ZlwI2wM4JbHC-z9stcboptfrdmDhA0LmERavCqM4_wf_fHvKkcE-ZQ
Phương pháp giải: Số học + Chia căn

You might also like