Tin học trẻ 2021 TPHCM - Vòng Sơ Loại - Bảng C - ABCD

Xem dạng PDF

Gửi bài giải

Điểm: 0,50 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Người đăng:
Nguồn bài:
Tin học trẻ 2021 TPHCM - Vòng Sơ Loại - Bảng C
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho dãy ~A~ gồm ~n~ số nguyên không âm, đánh số từ ~1~. Dãy tổng tiền tố ~B~ của ~A~ được định nghĩa như sau: $$\begin{cases} B_i = & & A_1, & i = 1 \\ B_i = B_{i - 1} & + & A_i, & 1 < i \le n \end{cases}$$

Tương tự, ta định nghĩa ~C~ là dãy tổng tiền tố của ~B~, và ~D~ là dãy tổng tiền tố của ~C~.

Cho ~q~ truy vấn, mỗi truy vấn thuộc một trong hai dạng:

  • ~U~ ~x~ ~y~: gán ~A_x = y~.
  • ~T~ ~w~: cho biết giá trị của ~T_w~, nói cách khác, phần tử thứ ~w~ của mảng ~T~.

trong đó:

~x~ và ~w~ là các chỉ số hợp lệ ~(1 \le x, w \le n)~.

~T~ là một trong ~3~ kí tự ~\{ B, C, D \}~, hay ~T \in \{ B, C, D \}~.

Yêu cầu:

Hãy viết chương trình thực hiện các truy vấn và trả lời các truy vấn hỏi giá trị.

Dữ liệu:

Nhập từ bàn phím gồm:

  • Dòng đầu chứa một số nguyên ~n~ ~(1 \le n \le 4 \times 10^5)~, là số phần tử của dãy ~A~.
  • Dòng tiếp theo chứa ~n~ số nguyên cách nhau bởi khoảng trắng là các phần tử của dãy ~A~.
  • Dòng đầu chứa một số nguyên ~q~ ~(1 \le q \le 4 \times 10^5)~, là số truy vấn bạn cần xử lý.
  • ~q~ dòng tiếp theo, mỗi dòng chứa một truy vấn thuộc một trong hai dạng đã nêu.

Các tham số của mỗi truy vấn cách nhau bởi một khoảng trắng.

Kết quả:

In ra màn hình một dòng cho mỗi truy vấn cho mỗi truy vấn loại ~2~. Vì kết quả có thể rất lớn, bạn cần đưa ra phần dư của kết quả khi chia cho ~10^9 + 7~.

Sample Input:

4
1 7 0 9
5
B 3
C 2
D 4
U 2 5
D 4

Sample Output:

8
9
61
49

Giải thích:

Trước truy vấn thứ ~4~, ta có các dãy ~A, B, C, D~ như sau:

A 1 7 0 9
B 1 8 8 17
C 1 9 17 34
D 1 10 27 61

Ràng buộc:

  • Tại mọi thời điểm, các phần tử của ~A~ có giá trị không vượt quá ~10^9~.
  • ~20\%~ số điểm của bài tương ứng với các test có ~T \in \{ B \}~.
  • ~30\%~ số điểm khác của bài tương ứng với các test có ~T \in \{ B, C \}~.

Bình luận

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



  • 0
    top1buffbann  đã bình luận lúc 9, Tháng 8, 2022, 6:18

    time ket si


  • -2
    khongbiet  đã bình luận lúc 15, Tháng 5, 2022, 7:20

    Mọi người cho e hỏi, để giải quyết dc bài này có cần phải biết 1 số thuật toán hoặc cấu trúc dữ liệu gì đặc biệt ko ạ ?


    • -2
      nmhienbn  đã bình luận lúc 15, Tháng 5, 2022, 11:05

      Segment Tree nha bạn, Bạn có thể tham khảo https://oj.vnoi.info/problem/segtree_itladder


      • -2
        khongbiet  đã bình luận lúc 15, Tháng 5, 2022, 14:24

        Cảm ơn b, bài itladder mình làm rồi, bài này mình cũng đùng segment tree nhưng có vẻ ko ổn lắm, mới dùng 2 mảng seg cho B,C là đã tle rồi


        • -3
          HN_CSP_FTRs  đã bình luận lúc 18, Tháng 6, 2022, 2:28 chỉnh sửa

          mình cũng vậy lazy cho mảng b,c,d thì tle tạch luôn dc có 2 test thua cả duyệt trâu dc 3 test


          • -2
            hh123123  đã bình luận lúc 18, Tháng 6, 2022, 8:14

            Biết đâu bài bạn bị cả WA nữa ấy, vì bài này bạn không thấy kết quả cho từng test