Truy vấn Đa thức

Đề bài

Mô tả

Cho một mảng gồm n phần tử. Bạn cần xử lý q truy vấn thuộc hai loại:

  1. Cập nhật đa thức: Tăng giá trị đầu tiên trong đoạn [a,b] thêm 1, giá trị thứ hai thêm 2, giá trị thứ ba thêm 3, v.v. Nói cách khác, tăng vị trí i (a≤i≤b) thêm i−a+1.
  2. Tính tổng các giá trị trong đoạn [a,b].

Dữ liệu vào

Dòng đầu chứa hai số nguyên n và q: kích thước mảng và số truy vấn.

Dòng thứ hai chứa n số nguyên t1,t2,…,tn: các giá trị ban đầu của mảng.

  • q dòng tiếp theo, mỗi dòng mô tả một truy vấn:

  • 1 a b — cập nhật đa thức trên đoạn [a,b]

  • 2 a b — tính tổng các giá trị trong đoạn [a,b]

Dữ liệu ra

Với mỗi truy vấn loại 2, in ra tổng các giá trị trong đoạn tương ứng.

Ràng buộc

  • 1≤n,q≤2·105
  • 1≤ti≤106
  • 1≤a≤b≤n

Ví dụ

Input Output Giải thích
5 3
4 2 3 1 7
2 1 5
1 1 5
2 1 5
17
32
Ban đầu tổng [1,5] = 4+2+3+1+7 = 17. Sau cập nhật đa thức [1,5], mảng thành [5,4,6,5,12]. Tổng [1,5] = 32.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0