| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2017 - Foehn Phenomena | 100 (p) | 1.0s | 256M |
| 2 | JOI 2017 - Semiexpress | 100 (p) | 1.0s | 256M |
| 3 | JOI 2017 - The Kingdom of JOIOI | 100 (p) | 4.0s | 256M |
| 4 | JOI 2017 - Soccer | 100 (p) | 3.0s | 256M |
| 5 | JOI 2017 - Rope | 100 (p) | 2.5s | 256M |
Ở Vương quốc IOI, gió luôn thổi từ biển vào đất liền. Có \(N+1\) địa điểm được đánh số từ \(0\) đến \(N\) theo hướng gió thổi. Nhà của ông JOI nằm tại địa điểm \(N\). Độ cao của địa điểm \(0\) là \(A_0=0\), còn độ cao của địa điểm \(i\) là \(A_i\).
Gió chuyển động sát mặt đất. Nhiệt độ gió tại địa điểm \(0\), nơi gần biển nhất, là \(0\) độ. Với mỗi \(0\le i<N\), nhiệt độ thay đổi từ địa điểm \(i\) đến địa điểm \(i+1\) như sau:
Hoạt động kiến tạo ở Vương quốc IOI rất mạnh. Bạn có dữ liệu về chuyển động kiến tạo trong \(Q\) ngày. Vào ngày thứ \(j\), độ cao của mọi địa điểm \(k\) với \(L_j\le k\le R_j\) thay đổi thêm \(X_j\). Nếu \(X_j\ge 0\), độ cao tăng \(X_j\); nếu \(X_j<0\), độ cao giảm \(|X_j|\).
Hãy tính nhiệt độ gió tại nhà ông JOI sau chuyển động kiến tạo của từng ngày.
In \(Q\) dòng. Dòng thứ \(j\) chứa nhiệt độ gió tại nhà ông JOI sau chuyển động kiến tạo ngày thứ \(j\).
Ví dụ 1
3 5 1 2
0
4
1
8
1 2 2
1 1 -2
2 3 5
1 2 -1
1 3 5
-5
-7
-13
-13
-18
Ban đầu, độ cao tại các địa điểm \(0,1,2,3\) lần lượt là \(0,4,1,8\). Sau chuyển động kiến tạo ngày đầu tiên, chúng trở thành \(0,6,3,8\); nhiệt độ gió tại các địa điểm tương ứng là \(0,-6,0,-5\).
Ví dụ 2
2 2 5 5
0
6
-1
1 1 4
1 2 8
5
-35
Ví dụ này thỏa mãn ràng buộc của nhóm 2.
Ví dụ 3
7 8 8 13
0
4
-9
4
-2
3
10
-9
1 4 8
3 5 -2
3 3 9
1 7 4
3 5 -1
5 6 3
4 4 9
6 7 -10
277
277
322
290
290
290
290
370
JOI 2016/2017, Vòng chung kết.
Đường sắt JOI có \(N\) ga được đánh số từ \(1\) đến \(N\) dọc theo một tuyến đường. Hiện có tàu nhanh và tàu thường.
Tàu thường dừng tại mọi ga và mất \(A\) phút để đi giữa hai ga liên tiếp. Tàu nhanh chỉ dừng tại \(S_1,S_2,\ldots,S_M\), trong đó
và mất \(B\) phút để đi giữa hai ga liên tiếp.
Đường sắt JOI dự định vận hành tàu bán nhanh, mất \(C\) phút giữa hai ga liên tiếp. Các ga dừng của tàu bán nhanh phải gồm mọi ga tàu nhanh dừng và có đúng \(K\) ga.
Đường sắt JOI muốn chọn các ga dừng sao cho số ga khác ga \(1\) có thể đến từ ga \(1\) trong không quá \(T\) phút là lớn nhất. Không tính thời gian tàu dừng. Chỉ được đi theo chiều số ga tăng dần; tại một ga mà nhiều loại tàu cùng dừng, hành khách có thể chuyển giữa các tàu đó.
Hãy tính số ga lớn nhất có thể đến trong giới hạn thời gian.
In số ga lớn nhất thỏa mãn điều kiện thời gian.
Ví dụ 1
10 3 5
10 3 5
30
1
6
10
8
Nếu tàu bán nhanh dừng tại \(1,5,6,8,10\), ta đến được mọi ga từ \(2\) đến \(10\) trừ ga \(9\) trong \(30\) phút. Đến ga \(3\) bằng tàu thường mất \(20\) phút. Đến ga \(7\) bằng tàu nhanh tới ga \(6\) rồi tàu thường mất \(25\) phút. Đến ga \(8\) bằng tàu nhanh tới ga \(6\) rồi tàu bán nhanh cũng mất \(25\) phút. Đến ga \(9\) nhanh nhất mất \(35\) phút: tàu nhanh tới \(6\), tàu bán nhanh tới \(8\), rồi tàu thường tới \(9\).
Ví dụ 2
10 3 5
10 3 5
25
1
6
10
7
Ví dụ 3
90 10 12
100000 1000 10000
10000
1
10
20
30
40
50
60
70
80
90
2
Ví dụ 4
12 3 4
10 1 2
30
1
11
12
8
Ví dụ này không thỏa mãn ràng buộc của nhóm 1.
Ví dụ 5
300 8 16
345678901 123456789 234567890
12345678901
1
10
77
82
137
210
297
300
72
Ví dụ này không thỏa mãn ràng buộc của nhóm 1.
Ví dụ 6
1000000000 2 3000
1000000000 1 2
1000000000
1
1000000000
3000
Ví dụ này không thỏa mãn ràng buộc của nhóm 1 hoặc nhóm 2.
JOI 2016/2017, Vòng chung kết.
Vương quốc JOIOI là một bảng chữ nhật gồm \(H\times W\) ô. Để nâng cao hiệu quả quản lý, vương quốc sẽ được chia thành hai vùng mang tên JOI và IOI. Cách chia phải thỏa mãn:
Mỗi ô có một độ cao nguyên. Với mỗi vùng, xét hiệu giữa độ cao lớn nhất và nhỏ nhất trong vùng. Hãy chia vương quốc hợp lệ sao cho giá trị lớn hơn trong hai hiệu này là nhỏ nhất.
In giá trị nhỏ nhất có thể của hiệu độ cao lớn nhất trong hai vùng.
Ví dụ 1
4 4
1 12 6 11
11 10 2 14
10 1 9 20
4 17 19 10
11
Một cách chia tối ưu, viết J cho vùng JOI và I cho vùng IOI, là:
J J J I
J J J I
J J I I
J I I I
Cách chia sau không hợp lệ vì các ô I trên cột thứ ba không liên thông:
J J I I
J J J I
J J J I
J I I I
Ví dụ 2
8 6
23 23 10 11 16 21
15 26 19 28 19 20
25 26 28 16 15 11
11 8 19 11 15 24
14 19 15 14 24 11
10 8 11 7 6 14
23 5 19 23 17 17
18 11 21 14 20 16
18
JOI 2016/2017, Vòng chung kết.
Bạn là huấn luyện viên của một đội bóng đá danh tiếng trong giải JOI. Đội có \(N\) cầu thủ, đánh số từ \(1\) đến \(N\). Sân là hình chữ nhật cao \(H\) mét theo hướng bắc-nam và rộng \(W\) mét theo hướng đông-tây. Điểm \((i,j)\) cách góc tây bắc \(i\) mét về phía nam và \(j\) mét về phía đông.
Khi bắt đầu thu dọn sau buổi tập, cầu thủ \(i\) đứng tại \((S_i,T_i)\). Chỉ có một quả bóng và cầu thủ \(1\) đang giữ bóng. Bạn đứng cùng cầu thủ \(N\) tại \((S_N,T_N)\). Việc thu dọn kết thúc khi bóng được đưa tới \((S_N,T_N)\) và bạn bắt được bóng. Bạn không di chuyển.
Mỗi hành động làm tăng mức mệt mỏi của cầu thủ thực hiện:
Cầu thủ và bóng được phép ra ngoài sân; nhiều cầu thủ có thể đứng cùng một vị trí. Hãy tính tổng mức mệt mỏi nhỏ nhất để đưa bóng cho bạn.
In tổng mức mệt mỏi nhỏ nhất có thể.
Ví dụ 1
6 5
1 3 6
3
1 1
0 4
6 5
26
Ví dụ này không thỏa mãn nhóm 1 hoặc nhóm 2. Ban đầu, cầu thủ \(1\) ở \((1,1)\) và giữ bóng, cầu thủ \(2\) ở \((0,4)\), còn cầu thủ \(3\) và bạn ở \((6,5)\).
Tổng mức mệt mỏi là \(26\) và đây là giá trị nhỏ nhất.
Ví dụ 2
3 3
0 50 10
2
0 0
3 3
60
Ví dụ này thỏa mãn nhóm 1 và nhóm 2. Không cần sút bóng.
Ví dụ 3
4 3
0 15 10
2
0 0
4 3
45
Ví dụ này thỏa mãn nhóm 1 và nhóm 2.
Ví dụ 4
4 6
0 5 1000
6
3 1
4 6
3 0
3 0
4 0
0 4
2020
Ví dụ này không thỏa mãn nhóm 1 nhưng thỏa mãn nhóm 2. Lưu ý rằng nhiều cầu thủ có thể đứng cùng một vị trí.
JOI 2016/2017, Vòng chung kết.
JOI đang chơi với một sợi dây dài \(N\), đặt thẳng từ trái sang phải. Dây gồm \(N\) đoạn nối liên tiếp; ban đầu mỗi đoạn dài \(1\), dày \(1\). Có tổng cộng \(M\) màu, và đoạn thứ \(i\) từ trái sang có màu \(C_i\).
JOI lặp lại thao tác sau cho tới khi dây còn dài \(2\). Gọi \(L\) là chiều dài hiện tại, chọn số nguyên \(j\) với \(1\le j<L\), rồi gập và ghép dây sao cho điểm cách đầu trái \(j\) đơn vị trở thành một đầu dây:
Hai đoạn chỉ có thể ghép khi cùng màu. Trước khi ghép, JOI có thể đổi màu một đoạn với chi phí bằng độ dày của đoạn đó. Hai đoạn sau khi ghép trở thành một đoạn có độ dày bằng tổng độ dày ban đầu.
Với mỗi màu, hãy tính tổng chi phí nhỏ nhất để rút dây còn chiều dài \(2\) và trong hai đoạn cuối có một đoạn mang màu đó.
In \(M\) dòng. Dòng thứ \(c\) chứa chi phí nhỏ nhất để dây cuối cùng có một đoạn màu \(c\).
Ví dụ 1
5 3
1 2 3 3 2
2
1
1
Để dây cuối cùng chứa màu \(1\), có thể đổi đoạn thứ hai thành màu \(1\), chọn \(j=1\), rồi đổi đoạn thứ tư của dây mới thành màu \(1\) và chọn \(j=2\). Dây cuối có màu \(3,1\), độ dày \(2,3\) và tổng chi phí là \(2\).
Để dây cuối chứa màu \(2\) hoặc \(3\), trước tiên chọn \(j=3\), thu được các màu \(3,2,1\) với độ dày \(2,2,1\). Đổi đoạn thứ ba thành màu \(2\) rồi chọn \(j=2\). Dây cuối có màu \(2,3\), độ dày \(3,2\) và tổng chi phí là \(1\).
Ví dụ 2
7 3
1 2 2 1 3 3 3
2
2
2
Để dây cuối chứa màu \(1\) với chi phí \(2\), lần lượt chọn \(j=2\); đổi đoạn ngoài cùng bên trái thành màu \(1\) rồi chọn \(j=1\) (đoạn này dày \(2\) nên việc đổi màu tốn \(2\)); chọn \(j=3\); cuối cùng chọn \(j=1\).
Ví dụ 3
10 3
2 2 1 1 3 3 2 1 1 2
3
3
4
Có thể cần đổi màu một số đoạn trước khi bắt đầu rút ngắn dây.
JOI 2016/2017, Vòng chung kết.