QOJ.ac

QOJ

実行時間制限: 6.0 s メモリ制限: 256 MB 満点: 100 ハック可能 ✓

#18140. Thử thách phương sai

統計

Kevin vừa mới học về định nghĩa phương sai. Với một mảng $a$ có độ dài $n$, phương sai của $a$ được định nghĩa như sau:

  • Gọi $x = \frac{1}{n} \sum_{i=1}^{n} a_i$, tức là $x$ là giá trị trung bình của mảng $a$;
  • Khi đó, phương sai của $a$ là $$V(a) = \frac{1}{n} \sum_{i=1}^{n} (a_i - x)^2.$$

Bây giờ, Kevin cho bạn một mảng $a$ gồm $n$ số nguyên, cùng với một số nguyên $k$. Bạn có thể thực hiện thao tác sau trên $a$:

  • Chọn một đoạn $[l, r]$ ($1 \le l \le r \le n$), sau đó với mỗi $l \le i \le r$, tăng $a_i$ thêm $k$.

Với mỗi $1 \le p \le m$, bạn cần tìm phương sai nhỏ nhất có thể của $a$ sau khi thực hiện đúng $p$ thao tác, độc lập cho từng giá trị $p$.

Để đơn giản, bạn chỉ cần in ra các kết quả đã nhân với $n^2$. Có thể chứng minh rằng các kết quả này luôn là số nguyên.

Dữ liệu vào

Mỗi bài kiểm tra chứa nhiều bộ dữ liệu. Dòng đầu tiên của dữ liệu vào chứa một số nguyên duy nhất $t$ ($1 \le t \le 100$) — số lượng bộ dữ liệu. Mô tả các bộ dữ liệu như sau:

Dòng đầu tiên của mỗi bộ dữ liệu chứa ba số nguyên $n, m$ và $k$ ($1 \le n, m \le 5000, n \cdot m \le 2 \cdot 10^4, 1 \le k \le 10^5$) — độ dài của mảng $a$, số lượng thao tác tối đa, và số được cộng vào $a_i$ mỗi lần, tương ứng.

Dòng thứ hai chứa $n$ số nguyên $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^5$) — các phần tử của mảng $a$.

Đảm bảo rằng tổng của $n \cdot m$ trên tất cả các bộ dữ liệu không vượt quá $2 \cdot 10^4$.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra $m$ số nguyên trên một dòng, số thứ $p$ biểu thị phương sai nhỏ nhất có thể của $a$ khi thực hiện đúng $p$ thao tác, đã nhân với $n^2$.

Ví dụ

Dữ liệu vào 1

9
3 2 1
1 2 2
3 2 2
1 2 2
10 2 1
10 1 1 1 1 10 1 1 1 1
6 8 2
1 1 4 5 1 3
8 8 7
20 43 24 2 4 3 20 43
8 8 3
20 43 24 2 4 3 20 43
10 12 1
5 3 3 5 4 1 8 1 1 1
13 10 100000
1 2 3 4 5 6 7 8 9 10 11 5 4
10 5 10000
2308 9982 4435 3310 100000 9 7 8100 1919 100000

Dữ liệu ra 1

0 0
2 2
1161 1024
53 21 21 5 5 5 5 5
10608 6912 4448 3104 1991 1312 535 304
13248 11184 9375 7815 6447 5319 4383 3687
385 316 269 224 181 156 124 101 80 56 41 29
1486 1486 1486 1486 1486 1486 1486 1486 1486 1486
134618047140 119919447140 107020847140 93922247140 82623000000

Ghi chú

Trong bộ dữ liệu đầu tiên:

  • Với $p = 1$, bạn có thể thực hiện thao tác trên $[1, 1]$, thay đổi $a$ từ $[1, 2, 2]$ thành $[2, 2, 2]$. Vì tất cả các phần tử đều bằng nhau, phương sai bằng $0$.
  • Với $p = 2$, bạn có thể thực hiện thao tác trên $[1, 3]$ và sau đó là $[1, 1]$, thay đổi $a$ từ $[1, 2, 2]$ thành $[2, 3, 3]$ rồi thành $[3, 3, 3]$. Vì tất cả các phần tử đều bằng nhau, phương sai bằng $0$.

Trong bộ dữ liệu thứ hai, một số lựa chọn tối ưu có thể là:

  • $p = 1: [1, 2, 2] \to [3, 2, 2]$;
  • $p = 2: [1, 2, 2] \to [1, 4, 4] \to [3, 4, 4]$.

Trong bộ dữ liệu thứ ba, một số lựa chọn tối ưu có thể là:

  • $p = 1: [10, 1, 1, 1, 1, 10, 1, 1, 1, 1] \to [10, 2, 2, 2, 2, 11, 2, 2, 2, 2]$;
  • $p = 2: [10, 1, 1, 1, 1, 10, 1, 1, 1, 1] \to [10, 1, 1, 1, 1, 10, 2, 2, 2, 2] \to [10, 2, 2, 2, 2, 10, 2, 2, 2, 2]$.

Trong bộ dữ liệu thứ tám, lựa chọn tối ưu cho mọi $p$ là thực hiện thao tác trên toàn bộ mảng $p$ lần.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.