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.

Tác giả: duong3982, noodles0428

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

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.