| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Đoạn đẹp | 7 (p) | 1.5s | 1G |
| 2 | Đoạn con hoàn hảo | 7 (p) | 1.5s | 1G |
| 3 | Cực trị địa phương | 6 (p) | 1.5s | 1G |
Nhật có \(n\) lá bài, lá bài thứ \(i\) ghi một số nguyên dương \(a_i\). Anh trải các lá bài này thành một hàng ngang (lá bài thứ \(i\) nằm ở vị trí thứ \(i\) từ trái sang) và bắt đầu một thử thách nhỏ với chúng.
Nhật định nghĩa một đoạn các lá bài là một tập hợp các lá bài ở các vị trí liên tiếp nhau, có thể được mô tả bằng một cặp số \((l, r)\), với \(1 \le l \le r \le n\), với \(l\) là lá bài đầu tiên và \(r\) là lá bài cuối cùng của đoạn (hay nói cách khác, đoạn \((l, r)\) sẽ gồm các lá bài \(a_l, a_{l+1}, \dots, a_r\)). Nhật còn định nghĩa hai khái niệm liên quan đến đoạn các lá bài sau:
Ví dụ, trong dãy các lá bài \(a = 1, 2, 3, 3, 2, 1\) và \(k = 5\) ta có các trường hợp ví dụ sau:
Thử thách mà Nhật đặt ra cho chính mình như sau: Với mỗi vị trí \(i\) mà \(1 \le i \le n\), anh phải tìm ra đoạn đẹp dài nhất và đoạn hoàn hảo dài nhất bắt đầu từ vị trí này. Độ dài của một đoạn là số lá bài nằm trong đoạn đó.
Nhật đã hoàn thành thử thách nhưng cần phải kiểm tra xem đáp án của mình có đúng hay không. Các bạn hãy viết một chương trình để giúp Nhật kiểm tra kết quả của mình nhé.
BEAUTY.inp:BEAUTY.out:Test 1
5 20 1
3 5 7 9 20
4 3 3 2 1
Do \(\theta = 1\) nên ta cần tìm đoạn đẹp dài nhất bắt đầu ở từng vị trí.
Test 2
5 20 2
3 5 7 9 20
4 2 2 2 0
Do \(\theta = 2\) nên ta cần tìm đoạn hoàn hảo dài nhất bắt đầu ở từng vị trí.
Cho một dãy số nguyên \(A_1, A_2, \dots, A_n\). Một đoạn con liên tiếp của \(A\) từ \(L\) đến \(R\), gọi là đoạn \([L, R]\) và gồm các phần tử \(A_L, A_{L+1}, \dots, A_R\), được gọi là hoàn hảo nếu:
Bạn hãy tìm \(m\) đoạn con liên tiếp không giao nhau của \(A\) sao cho tất cả các đoạn con đều hoàn hảo và tổng độ dài của chúng là lớn nhất.
Hai đoạn con \((L_1, R_1)\) và \((L_2, R_2)\) được tính là giao nhau nếu chúng có chung ít nhất một phần tử. Độ dài của đoạn con \((L, R)\) là \(R - L + 1\).
Test 1
8 3 2
1 5 2 3 5 1 2 4
6
Một trong những cách chọn tốt nhất là chọn các đoạn \([2, 4]\) và đoạn \([6, 8]\).
Đoạn \([2, 4]\) là hoàn hảo vì các phần tử trong đoạn có giá trị đôi một phân biệt, lần lượt là \(5, 2, 3\). Chênh lệch giữa hai phần tử bất kỳ trong đoạn cũng không vượt quá \(3\). Tổng độ dài của hai đoạn là \((4 - 2 + 1) + (8 - 6 + 1) = 6\).
Trong một dãy \(x_1, x_2, \ldots, x_k\), số \(x_i\) được gọi là cực trị địa phương khi và chỉ khi \(x_{i-1} < x_i > x_{i+1}\) hoặc \(x_{i-1} > x_i < x_{i+1}\). Một dãy \(x\) được gọi là đẹp khi và chỉ khi dãy tồn tại ít nhất một cực trị địa phương.
Bạn được cho một dãy \(a_1, a_2, \ldots, a_n\). Hãy đếm số lượng dãy con (không nhất thiết liên tiếp) của dãy là dãy đẹp.
Test 1
4
1 3 2 4
3
1, 3, 2 là dãy đẹp vì có cực trị địa phương tại \(a_2 = 3\).3, 2, 4 là dãy đẹp vì có cực trị địa phương tại \(a_2 = 2\).1, 3, 2, 4 là dãy đẹp vì có cực trị địa phương tại \(a_2\) và \(a_3\).