trang chủ / đề bài / tn_tst_23_a

Dãy số

Đề bài

Mô tả

Xét dãy số nguyên a1,a2,…,an và q thao tác thuộc một trong hai loại thao tác sau:

  • Thao tác loại 1 có dạng: 1 i c với 1≤i≤n và |c|≤109, tức là thay đổi giá trị ai thành c;
  • Thao tác loại 2 có dạng: 2 L R với 1≤L<R≤n, tức là tính tổng aL+af(L)+aL+1+af(L+1)+⋯+aR+af(R), trong đó f(i) là ước lẻ lớn nhất của i (1≤i≤n).

Yêu cầu: Thực hiện lần lượt q thao tác, với mỗi thao tác loại 2 ghi ra giá trị cần tính tổng.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên dương n,q;
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an (|ai|≤109);
  • Dòng thứ k (1≤k≤q) trong q dòng tiếp theo chứa ba số nguyên mô tả thao tác thứ k.

Dữ liệu ra

In ra một số dòng, mỗi dòng là giá trị cần tính của một thao tác loại 2, theo đúng thứ tự xuất hiện trong dữ liệu vào.

Ràng buộc

  • n,q≤2×105;
  • |ai|≤109, |c|≤109;
  • Thao tác loại 1: 1≤i≤n; thao tác loại 2: 1≤L<R≤n.

Subtasks

  • Có 40% số test ứng với 40% số điểm có n,q≤103;
  • Có 40% số test khác ứng với 40% số điểm có n,q≤2×105 và không có thao tác loại 1;
  • Có 20% số test còn lại ứng với 20% số điểm có n,q≤2×105.

Ví dụ

Input Output Giải thích
4 3
1 2 3 4
2 1 4
1 4 0
2 3 4
16
7
16=a1+a1+a2+a1+a3+a3+a4+a1=1+1+2+1+3+3+4+1. Sau khi đổi a4=0: 7=a3+a3+a4+a1=3+3+0+1.
6 7
5 -1 2 0 -3 7
2 2 6
1 3 10
2 5 6
1 1 -4
2 1 6
1 2 8
2 1 2
16
11
14
-4
f(2)=f(4)=1, f(6)=3. Truy vấn đầu: (−1+5)+(2+2)+(0+5)+(−3−3)+(7+2)=16. Sau khi a3=10, cả a3 và a6 (vì f(6)=3) đều dùng giá trị mới: (−3−3)+(7+10)=11.

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