Tính tổng đoạn con

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Java 2.0s
Python 2.0s
Giới hạn bộ nhớ: 256M
Java 1G
Python 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, JS, Pascal, PHP, Python, Ruby

Bạn được cho một mảng gồm có n số nguyên dương ~a_1, a_2, a_3,…, a_n~ và ~Q~ truy vấn. Có 2 loại truy vấn như sau:

  • Loại truy vấn thứ nhất: Thay thế giá trị thứ ~x~ trong mảng thành ~val~, tức là ~a[x]=val~

  • Loại truy vấn thứ hai: In ra tổng trong đoạn từ ~a[l]~ tới ~a[r]~ ~( 1<=l<=r<=n)~

Input:

  • Dòng đầu tiên của input chứa số nguyên ~n (1 \leq n \leq 10^5)~ và số nguyên ~q(1 \leq q \leq 10^5)~

  • Dòng tiếp theo chứa n số nguyên ~a[i] (1 \leq i \leq n , 1\leq a[i] \leq 10^6)~

  • Các dòng tiếp theo là các Q truy vấn theo 2 dạng:

  • 1 x val: tương ứng với loại truy vấn thứ nhất

  • 2 l r: tương ứng với loại truy vấn thứ hai

Output:

  • Hãy in ra kết quả khi thực hiện các truy vấn loại 2, mỗi kết quả trên một dòng

Sample Input 1

5 4
5 10 90 100 1
2 1 3
1 2 2
2 1 4
2 3 5

Sample Output 1

105
197
191

Chia độ khó

Độ khó Điều kiện
Dễ (40% tổng số điểm) ~1 \leq n \leq 100~ và ~1 \leq q \leq 100~
Trung bình (30% tổng số điểm) ~1 \leq n \leq 1000~ và ~1 \leq q \leq 1000~
Khó (30% tổng số điểm) ~1 \leq n \leq 10^5~ và ~1 \leq q \leq 10^5~

Bình luận

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



  • 0
    AnNguyen0511  đã bình luận lúc 14, Tháng 10, 2023, 14:53

    Ad cho mình hỏi bài này ngoài segment tree thì còn cách nào khác không ạ?


    • 1
      tintk  đã bình luận lúc 3, Tháng 12, 2023, 8:57

      dùng thuật toán căn n