| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2017 - Microwave | 100 (p) | 1.0s | 256M |
| 2 | JOI 2017 - Point Card | 100 (p) | 1.0s | 256M |
| 3 | JOI 2017 - Refreshment Area | 100 (p) | 1.0s | 256M |
| 4 | JOI 2017 - Plush Toys | 100 (p) | 1.0s | 256M |
| 5 | JOI 2017 - Ridge | 100 (p) | 1.0s | 256M |
| 6 | JOI 2017 - Snake JOI | 100 (p) | 1.0s | 256M |
Để chuẩn bị bữa ăn, JOI muốn dùng lò vi sóng để làm nóng một miếng thịt từ nhiệt độ \(A\) °C lên \(B\) °C.
Khi nhiệt độ của miếng thịt nhỏ hơn \(0\) °C, miếng thịt đang đông lạnh. Khi nhiệt độ lớn hơn \(0\) °C, miếng thịt không đông lạnh. Ở đúng \(0\) °C, miếng thịt có thể đang đông lạnh hoặc đã rã đông.
JOI ước tính thời gian làm nóng theo các quy tắc sau:
Theo cách ước tính này, hãy tính số giây cần thiết để đưa miếng thịt lên nhiệt độ \(B\) °C.
Dữ liệu vào gồm \(5\) dòng, mỗi dòng chứa một số nguyên:
In ra một số nguyên trên một dòng: số giây cần thiết để đưa miếng thịt lên nhiệt độ \(B\) °C.
Các giá trị thỏa mãn:
Bài có năm bộ dữ liệu chấm, mỗi bộ trị giá \(20\) điểm.
Ví dụ 1
-10
20
5
10
3
120
Ban đầu miếng thịt ở \(-10\) °C và đang đông lạnh. Thời gian cần thiết được tính như sau:
Vì vậy, tổng thời gian là \(120\) giây.
Ví dụ 2
35
92
31
50
11
627
Ban đầu miếng thịt không đông lạnh. Do đó, cần \(627\) giây để làm nóng miếng thịt từ \(35\) °C lên \(92\) °C.
Kỳ thi chọn đội tuyển Olympic Tin học Nhật Bản JOI 2016/2017, vòng sơ khảo, bài 1: Microwave.
Khu phố mua sắm JOI có một chương trình thẻ tích điểm. Mỗi thẻ có \(2N\) ô. Khi mua hàng, khách hàng được rút thăm; tùy theo kết quả, một dấu "trúng" hoặc "trượt" được đóng vào một ô. Không ô nào bị đóng dấu hai lần. Một thẻ có dấu "trúng" trong ít nhất \(N\) trên tổng số \(2N\) ô có thể được đổi lấy một phần quà.
Ngoài ra, có thể đổi dấu trong một ô với chi phí \(1\) yên.
JOI có \(M\) thẻ tích điểm mà cả \(2N\) ô đều đã được đóng dấu. Thẻ thứ \(i\) (\(1 \le i \le M\)) có \(A_i\) dấu "trúng" và \(B_i\) dấu "trượt". JOI muốn nhận được ít nhất \(M-1\) phần quà.
Hãy tính chi phí nhỏ nhất để JOI nhận được ít nhất \(M-1\) phần quà.
Dữ liệu vào gồm \(M+1\) dòng:
In ra một số nguyên trên một dòng: chi phí nhỏ nhất để JOI nhận được ít nhất \(M-1\) phần quà.
Các giá trị thỏa mãn:
Bài có năm bộ dữ liệu chấm, mỗi bộ trị giá \(20\) điểm.
Ví dụ 1
4 5
1 7
6 2
3 5
4 4
0 8
4
Đổi \(3\) dấu "trượt" trên thẻ \(1\) và \(1\) dấu "trượt" trên thẻ \(3\) thành dấu "trúng" tốn \(4\) yên. Khi đó, \(4 = 5-1\) thẻ có thể đổi lấy quà, và đây là chi phí nhỏ nhất.
Ví dụ 2
5 4
5 5
8 2
3 7
8 2
0
Đã có sẵn \(3 = 4-1\) thẻ có thể đổi lấy quà, nên JOI không cần đổi dấu nào.
Kỳ thi chọn đội tuyển Olympic Tin học Nhật Bản JOI 2016/2017, vòng sơ khảo, bài 2: Point Card.
Một cuộc thi lập trình quốc tế sắp được tổ chức tại Nhật Bản và địa điểm thi đang được chuẩn bị. Địa điểm được chia thành một lưới gồm \(N\) ô theo hướng Bắc - Nam và \(M\) ô theo hướng Đông - Tây. Một số ô đang chứa thiết bị phục vụ cuộc thi.
Để thí sinh nghỉ ngơi trong thời gian thi, ban tổ chức sẽ bố trí đồ ăn nhẹ và thức uống tại đúng một khu vực nghỉ giải lao. Khu vực nghỉ phải gồm \(D\) ô liên tiếp theo hướng Bắc - Nam hoặc theo hướng Đông - Tây. Không được bố trí khu vực nghỉ trên ô có thiết bị.
Hãy tính số cách bố trí khu vực nghỉ giải lao trong địa điểm thi.
Dữ liệu vào gồm \(N+1\) dòng:
# nghĩa là ô có thiết bị, còn . nghĩa là ô không có thiết bị.In ra một số nguyên trên một dòng: số cách bố trí khu vực nghỉ giải lao.
Các giá trị thỏa mãn:
Bài có năm bộ dữ liệu chấm, mỗi bộ trị giá \(20\) điểm.
Ví dụ 1
3 5 2
...#.
#...#
....#
12
Ví dụ 2
4 7 5
.#.....
.....##
.......
#......
7
Kỳ thi chọn đội tuyển Olympic Tin học Nhật Bản JOI 2016/2017, vòng sơ khảo, bài 3: Refreshment Area.
Một thành viên của JOI làm việc tại cửa hàng đồ chơi. Hôm nay, người này cần sắp xếp lại khu vực thú nhồi bông trong cửa hàng.
Trên một chiếc kệ, \(N\) con thú nhồi bông được đặt thành một hàng từ trái sang phải. Kệ được chia thành \(N\) ngăn và mỗi ngăn chứa đúng một con thú. Cửa hàng bán tổng cộng \(M\) loại thú nhồi bông, được đánh số từ \(1\) đến \(M\). Mỗi con thú trên kệ thuộc một trong \(M\) loại này, và mỗi loại xuất hiện ít nhất một lần.
Để trông đẹp mắt hơn, người này muốn sắp xếp lại sao cho tất cả thú nhồi bông cùng loại nằm liên tiếp trên kệ. Việc sắp xếp được thực hiện như sau:
Sau khi sắp xếp, tất cả thú nhồi bông cùng loại phải nằm liên tiếp trên kệ.
Hãy tính số thú nhồi bông ít nhất cần lấy ra để thực hiện việc sắp xếp.
Dữ liệu vào gồm \(N+1\) dòng:
In ra một số nguyên trên một dòng: số thú nhồi bông ít nhất cần lấy ra.
Các giá trị thỏa mãn:
Mỗi loại từ \(1\) đến \(M\) xuất hiện ít nhất một lần.
Bài có năm bộ dữ liệu chấm, mỗi bộ trị giá \(20\) điểm.
Ví dụ 1
7 2
1
2
2
2
1
2
1
2
Ban đầu, các loại thú từ trái sang phải là \(1,2,2,2,1,2,1\). Một cách tối ưu là lấy con thứ nhất và con thứ sáu tính từ trái sang, sau đó đặt một con loại \(2\) vào ngăn thứ nhất và một con loại \(1\) vào ngăn thứ sáu. Khi đó chỉ cần lấy ra \(2\) con.
Ví dụ 2
12 4
1
3
2
4
2
1
2
3
1
1
3
4
7
Kỳ thi chọn đội tuyển Olympic Tin học Nhật Bản JOI 2016/2017, vòng sơ khảo, bài 4: Plush Toys.
Miệng chảo JOI là một địa hình đẹp, được nhiều người leo núi yêu thích nhờ phong cảnh tuyệt vời. Đặc biệt, cảnh nhìn từ những nơi được gọi là sống núi rất ngoạn mục.
Miệng chảo JOI là một hình chữ nhật dài \(H\) kilômét theo hướng Bắc - Nam và \(W\) kilômét theo hướng Đông - Tây. Chia vùng đất theo từng kilômét ở cả hai hướng, ta thu được \(H \times W\) khu vực. Trong mỗi khu vực, độ cao là không đổi; độ cao của mọi cặp khu vực khác nhau đều khác nhau.
Khi mưa rơi xuống một khu vực, nước chảy sang tất cả các khu vực kề cạnh theo hướng Bắc, Nam, Đông hoặc Tây có độ cao thấp hơn khu vực đó. Nếu không có khu vực kề cạnh nào thấp hơn, nước đọng lại tại khu vực hiện tại. Nước chảy đến từ khu vực khác cũng tuân theo quy tắc này. Bên ngoài miệng chảo JOI là những vách núi dốc của vành miệng chảo, nên nước không thể chảy ra ngoài.
Một khu vực được gọi là sống núi nếu, khi mưa chỉ rơi xuống khu vực đó, cuối cùng nước đọng lại tại nhiều hơn một khu vực.
Hãy tính số khu vực là sống núi.
Dữ liệu vào gồm \(H+1\) dòng:
In ra một số nguyên trên một dòng: số khu vực là sống núi.
Các giá trị thỏa mãn:
Với mọi \((i,j) \ne (k,l)\), ta có \(M_{i,j} \ne M_{k,l}\).
Bài có năm bộ dữ liệu chấm, mỗi bộ trị giá \(20\) điểm.
Ví dụ 1
3 3
2 9 4
7 5 3
6 1 8
4
Bốn khu vực có độ cao \(5,7,8,9\) là sống núi. Chẳng hạn, nếu mưa rơi xuống khu vực có độ cao \(9\), cuối cùng nước đọng lại tại ba khu vực có độ cao \(1,2,3\), nên khu vực có độ cao \(9\) là sống núi. Nếu mưa rơi xuống khu vực có độ cao \(6\), cuối cùng nước chỉ đọng lại tại khu vực có độ cao \(1\), nên khu vực có độ cao \(6\) không phải là sống núi.
Ví dụ 2
3 5
5 3 8 2 14
9 10 4 1 13
12 7 11 6 15
4
Bốn khu vực có độ cao \(8,10,11,12\) là sống núi.
Kỳ thi chọn đội tuyển Olympic Tin học Nhật Bản JOI 2016/2017, vòng sơ khảo, bài 5: Ridge.
JOI, một chú rắn, bị lạc vào một dinh thự rộng lớn. Chú phải thoát ra trước khi bị chủ dinh thự phát hiện.
Dinh thự có \(N\) căn phòng, được đánh số từ \(1\) đến \(N\), và \(M\) hành lang. Hành lang thứ \(i\) (\(1 \le i \le M\)) nối phòng \(A_i\) với phòng \(B_i\). JOI có thể đi qua mỗi hành lang theo cả hai hướng và cần \(D_i\) phút để đi qua hành lang thứ \(i\). Không có cách nào di chuyển giữa các phòng ngoài việc đi qua hành lang.
Nhiệt độ trong mỗi phòng được giữ cố định và đối với JOI, căn phòng đó hoặc quá lạnh, hoặc dễ chịu, hoặc quá nóng. Vì không thể thích nghi với sự thay đổi nhiệt độ đột ngột, JOI không được bước vào một căn phòng quá nóng khi chưa đủ \(X\) phút kể từ lần gần nhất rời khỏi một căn phòng quá lạnh. Tương tự, JOI không được bước vào một căn phòng quá lạnh khi chưa đủ \(X\) phút kể từ lần gần nhất rời khỏi một căn phòng quá nóng.
Trong lúc di chuyển, ngay sau khi bước vào một căn phòng, JOI phải lập tức rời khỏi căn phòng đó. Chú không được quay lại giữa hành lang hoặc mất nhiều hơn \(D_i\) phút để đi qua hành lang thứ \(i\). Tuy nhiên, JOI được phép bước vào lại một phòng đã từng đến và đi lại qua một hành lang đã từng sử dụng.
Ban đầu JOI đang ở phòng \(1\), một căn phòng quá lạnh. Khi bước vào phòng \(N\), nơi có lối ra, JOI thoát khỏi dinh thự.
Hãy tính thời gian ngắn nhất để JOI thoát khỏi dinh thự.
Dữ liệu vào gồm \(1+N+M\) dòng:
In ra một số nguyên trên một dòng: số phút ít nhất để JOI thoát khỏi dinh thự.
Các giá trị thỏa mãn:
Dữ liệu bảo đảm JOI có thể thoát khỏi dinh thự.
Bài có năm bộ dữ liệu chấm, mỗi bộ trị giá \(20\) điểm.
Ví dụ 1
8 10 4
0
1
1
2
1
1
2
0
1 2 1
1 3 1
2 3 3
2 4 5
3 4 1
4 5 1
5 6 1
5 8 1
1 7 2
7 8 2
9
Lộ trình nhanh nhất đi qua các phòng theo thứ tự \(1 \to 2 \to 3 \to 4 \to 5 \to 6 \to 5 \to 8\).
Ví dụ 2
15 25 4
0
1
1
0
2
1
0
1
1
2
0
0
1
0
1
8 11 1
7 10 1
12 14 1
3 8 1
1 5 1
3 9 1
3 8 1
1 5 1
6 15 1
11 12 1
2 14 1
7 10 1
11 12 1
5 13 1
2 8 1
1 4 1
2 11 1
5 6 1
1 13 1
6 12 1
5 10 1
9 13 1
4 10 1
3 12 1
7 13 1
6
Trong ví dụ này, một số cặp phòng, chẳng hạn phòng \(1\) và phòng \(5\), được nối bởi nhiều hành lang.
Kỳ thi chọn đội tuyển Olympic Tin học Nhật Bản JOI 2016/2017, vòng sơ khảo, bài 6: Snake JOI.