Hướng dẫn giải của Clue Contest 05 - Tăng đoạn
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.
Tác giả:
,Nhận xét: Đề chỉ hỏi tổng của dãy số, vì vậy ta không cần dựng mảng, chỉ cần có một biến kết quả lưu tổng của dãy hiện tại.
Với mỗi truy vấn, kết quả được tăng lên ~x \times z~, với ~z~ là tổng các số từ ~1~ đến ~r - l + 1~.
Độ phức tạp: ~O~ (~q~).
Code mẫu:
import sys import math def main(): n, q = map(int, input().split()) mod = 20032024 total = 0 for _ in range(q): l, r, x = map(int, input().split()) m = r - l + 1 total += x * m * (m + 1) // 2 total %= mod print(total) if __name__ == "__main__": main()
Bình luận