| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Màn hình | 100 (p) | 1.0s | 256M |
| 2 | Dãy số tăng | 100 (p) | 1.0s | 256M |
| 3 | Bánh mì và bánh rán | 100 (p) | 1.0s | 256M |
| 4 | Giờ học giáo dục thể chất | 100 (p) | 1.0s | 256M |
Một công ty lớn đã quyết định đưa ra một loại màn hình có đúng \(n\) điểm ảnh được xếp thành các hàng và các cột.
Nhiệm vụ của bạn là xác định số hàng điểm ảnh \(a\) và số cột điểm ảnh \(b\) sao cho:
8
2 4
25
5 5
Dãy số \(a_1, a_2, \ldots, a_n\) được gọi là tăng nếu \(a_1 < a_2 < \cdots < a_n\).
Bạn được cho một dãy số \(b_1, b_2, \ldots, b_n\) và một số nguyên dương \(d\). Trong mỗi lần thao tác, bạn chọn một phần tử của dãy số và cộng thêm \(d\) vào nó. Số thao tác ít nhất là bao nhiêu để biến đổi dãy số đã cho trở thành dãy số tăng.
4 2
1 3 3 2
3
Trong ví dụ trên, ta có dãy số \(b\) là: \(1, 3, 3, 2\) và \(d = 2\). Số thao tác ít nhất để biến đổi dãy số thành dãy số tăng là \(3\) và một trong các cách thực hiện như sau:
Mẹ của An đã lên kế hoạch ăn sáng bằng bánh mì hoặc bánh rán cho An trong \(n\) ngày (được đánh số từ \(1\) đến \(n\)). Mẹ của An đã viết một xâu \(s\) độ dài \(n\), trong đó kí tự thứ \(i\) (\(1 \leq i \leq n\)) là '0' hoặc '1' biểu thị ngày thứ \(i\) sẽ ăn bánh mì hoặc bánh rán tương ứng.
An thích ăn bánh rán hơn bánh mì, nên anh ta muốn chọn một đoạn gồm \(k\) kí tự liên tiếp trong xâu \(s\) và thay đổi mỗi kí tự '0' trong đoạn này thành '1'. Gọi \(time\) là số ngày liên tiếp dài nhất mà An ăn bánh rán. Bạn hãy giúp An tìm giá trị \(time\) lớn nhất mà anh ta có thể đạt được bằng cách chọn một đoạn hợp lý.
13 2
0101110000101
5
An cần chọn đoạn kí tự từ thứ 2 đến thứ 3 là "10", sau đó thay đổi kí tự thứ 3 trong \(s\) thành '1' và \(time\) là 5 ngày: từ thứ 2 đến thứ 6.
6 3
100001
4
An cần chọn đoạn kí tự từ thứ 2 đến thứ 4 là "000", sau đó thay đổi tất cả các kí tự trong đoạn này từ '0' thành '1' và \(time\) là 4 ngày: từ thứ 1 đến thứ 4.
Trước giờ học giáo dục thể chất, một lớp gồm \(n\) học sinh xếp thành một hàng. Tất cả học sinh trong lớp đều có chiều cao khác nhau. Vị trí thứ \(i\) (i = 1, 2, ..., n) tính từ đầu bên trái của hàng là học sinh có chiều cao \(pi\) (\(1 ≤ p_i ≤ n\)).
Khi bắt đầu giờ học, thầy giáo có thể thay đổi thứ tự học sinh trong hàng. Để làm điều này, thầy giáo có thể thực hiện thao tác sau đúng một lần: chọn một đoạn từ vị trí \(l\) đến vị trí \(r\) (\(1 ≤ l ≤ r ≤ n\)) và sắp xếp các học sinh trong đoạn này theo chiều cao tăng dần từ trái sang phải. Ví dụ \(n = 5\), ban đầu học sinh theo thứ tự có chiều cao là 5, 2, 4, 1, 3 và thầy giáo chọn \(l = 1, r = 4\) thì sau khi sắp xếp học sinh sẽ theo thứ tự có chiều cao là 1, 2, 4, 5, 3.
Sử dụng thao tác này, thầy giáo có thể sắp xếp để hai học sinh nào đó cách xa nhau nhất có thể. Khoảng cách giữa hai học sinh bằng sự chênh lệch giữa các vị trí mà hai học sinh đứng. Với mỗi cặp học sinh, thầy giáo tính khoảng cách lớn nhất giữa hai học sinh này sau khi thực hiện đúng 1 thao tác nói trên. Bạn hãy giúp thầy giáo tìm tổng của các giá trị này.
Cụ thể hơn, hãy xét hai học sinh ban đầu ở vị trí \(i\) và \(j\) (\(1 ≤ i < j ≤ n\)). Gọi \(d(i, j)\) là khoảng cách lớn nhất giữa hai học sinh đó mà thầy giáo có thể đạt được bằng cách chọn một đoạn và sắp xếp. Bạn cần tính tổng tất cả các giá trị \(d(i, j)\) với mọi \(i, j\) thỏa mãn \(1 ≤ i < j ≤ n\).
5
5 2 4 1 3
35
Câu trả lời là tổng các số sau: $d(1, 2) = 3, d(1, 3) = 4, d(1, 4) = 4, d(1, 5) = 4, d(2, 3) = 3, d(2, 4) = 3, d(2, 5) = 4, d(3, 4) = 3, d(3, 5) = 3, d(4, 5) = 4.
10
2 1 6 8 3 5 9 10 7 4
256
2
2 1
1