trang chủ / bài tập / sumpaths

Tổng các đường đi

Đề bài

Mô tả

n ô được đánh số 1,2,,n từ trái sang phải. Ta đặt một robot vào một ô bất kỳ, sau đó robot phải thực hiện đúng k bước di chuyển.

Mỗi bước, robot đang ở ô i phải di chuyển sang ô i1 hoặc ô i+1, với điều kiện ô đích vẫn nằm trong đoạn [1,n] (robot không được đi ra ngoài).

Dãy các ô mà robot đi qua theo thứ tự (kể cả ô ban đầu) tạo thành một đường đi tốt. Gọi c0,c1,,ck là dãy ô của một đường đi tốt (c0 là ô đặt robot, ct là ô robot đang đứng sau t bước). Mỗi ô i có một giá trị ai. Giá trị của đường đi bằng

ac0+ac1++ack.

Hãy tính tổng giá trị của tất cả các đường đi tốt, lấy dư cho 109+7. Hai đường đi tốt là khác nhau nếu ô xuất phát khác nhau, hoặc tồn tại bước t[1,k] mà vị trí robot sau t bước là khác nhau.

Ngoài ra có q lần cập nhật. Mỗi lần cập nhật thay đổi giá trị của đúng một ô. Sau mỗi lần cập nhật, hãy in ra tổng giá trị mới của tất cả đường đi tốt (lấy dư 109+7).

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, k, q.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.
  • q dòng tiếp theo, mỗi dòng chứa hai số nguyên ix, nghĩa là gán ai:=x.

Dữ liệu ra

In ra q số nguyên, số thứ t là tổng giá trị của tất cả đường đi tốt sau khi thực hiện t cập nhật đầu tiên, lấy dư 109+7.

Ràng buộc

  • \leq n \leq 5000;1 \leq k \leq 5000;1 \leq q \leq 2 \cdot 10^5$.
  • \leq a_i \leq 10^9$.
  • Trong mỗi cập nhật: 1in, 1x109.

Ví dụ

Input Output Giải thích
5 1 5
3 5 1 4 2
1 9
2 4
3 6
4 6
5 2
62
58
78
86
86
Với k=1, các đường đi tốt là (1,2),(2,1),(2,3),(3,2),(3,4),(4,3),(4,5),(5,4). Ban đầu a=[3,5,1,4,2]; sau cập nhật đầu tiên a=[9,5,1,4,2], tổng giá trị 8 đường đi là 62.
5 2 5
3 5 1 4 2
1 9
2 4
3 6
4 6
5 2
157
147
207
227
227
Cùng dữ liệu như trên nhưng k=2: mỗi đường đi có 3 ô.
4 40 6
92 21 82 46
3 56
1 72
4 28
1 97
2 49
2 88
239185261
666314041
50729936
516818968
766409450
756910476
n nhỏ nhưng k lớn nên số đường đi rất nhiều, kết quả phải lấy dư.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0