Cập Nhật Đoạn, Truy Vấn Điểm

Đề bài

Mô tả

Cho mảng a gồm n số nguyên (đánh số từ 0). Ban đầu mảng được khởi tạo bằng 0. Cài đặt cấu trúc dữ liệu hỗ trợ hai thao tác:

  • Cập nhật đoạn: thêm v vào tất cả các phần tử a[l],a[l+1],…,a[r].
  • Truy vấn điểm: trả về giá trị a[i] hiện tại.

Hàm cần cài đặt

Đây là bài toán signature grader. Bạn chỉ cần cài đặt ba hàm sau, không cần viết main() hay đọc/ghi dữ liệu.

Ngôn ngữ hỗ trợ: C/C++, Python, và Java.

C++
void init(int n);
void update(int l, int r, long long v);
long long query(int i);
Python
def init(n: int) -> None: ...
def update(l: int, r: int, v: int) -> None: ...
def query(i: int) -> int: ...
Java
public class Solution {
    public void init(int n) { ... }
    public void update(int l, int r, long v) { ... }
    public long query(int i) { ... }
}
Mô tả
  • init(n): Khởi tạo cấu trúc với n phần tử, tất cả bằng 0.
  • update(l, r, v): Cộng v vào a[l],a[l+1],…,a[r].
  • query(i): Trả về giá trị hiện tại của a[i].

Ràng buộc

  • 1≤n≤2·105
  • Tổng số thao tác update và query: ≤2·105
  • 0≤l≤r<n
  • |v|≤109

Ví dụ

Input Output Giải thích
5 5
U 0 2 3
Q 1
U 1 4 2
Q 2
Q 4
3
5
2
Sau U(0,2,3): a=[3,3,3,0,0]. a[1]=3. Sau U(1,4,2): a=[3,5,5,2,2]. a[2]=5, a[4]=2.

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