| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2020 - Furniture | 100 (p) | 3.0s | 512M |
| 2 | JOI 2020 - Monochrome Points | 100 (p) | 2.0s | 512M |
| 3 | JOI 2020 - Power Plant | 100 (p) | 1.0s | 512M |
Căn phòng của JOI-kun có dạng hình chữ nhật, được chia thành một lưới gồm \(N \times M\) ô. Có \(N\) hàng nằm theo hướng đông - tây và \(M\) cột nằm theo hướng nam - bắc. Ô ở hàng thứ \(i\) tính từ phía bắc và cột thứ \(j\) tính từ phía tây được ký hiệu là \((i,j)\), với \(1 \le i \le N\), \(1 \le j \le M\). Một số ô có đặt đồ nội thất. Nếu \(C_{i,j}=1\) thì ô \((i,j)\) có đồ nội thất; nếu \(C_{i,j}=0\) thì ô đó không có đồ nội thất.
Một cách bố trí đồ nội thất được gọi là hợp lý nếu có thể đi từ ô \((1,1)\) đến ô \((N,M)\) mà không đi qua ô có đồ nội thất, bằng cách liên tiếp di chuyển sang ô kề phía nam hoặc phía đông. Cách bố trí ban đầu được bảo đảm là hợp lý.
JOI-kun sẽ thực hiện lần lượt \(Q\) thao tác. Ở thao tác thứ \(k\) (\(1 \le k \le Q\)), nếu việc đặt thêm một món đồ nội thất vào ô \((X_k,Y_k)\) vẫn giữ cho cách bố trí hợp lý, cậu sẽ đặt món đồ đó vào ô này. Ngược lại, cậu không làm gì.
JOI-kun không thực hiện thao tác tại ô đã có đồ nội thất từ đầu hoặc ô đã được chọn trong một thao tác trước đó. Hai ô \((1,1)\) và \((N,M)\) không có đồ nội thất, và cậu cũng không thực hiện thao tác tại hai ô này.
Cho kích thước căn phòng, cách bố trí ban đầu và các ô được chọn trong các thao tác, hãy xác định với mỗi thao tác liệu JOI-kun có đặt thêm đồ nội thất hay không.
Đọc dữ liệu từ đầu vào chuẩn. Tất cả các giá trị trong dữ liệu vào đều là số nguyên.
Ghi \(Q\) dòng ra đầu ra chuẩn. Dòng thứ \(k\) (\(1 \le k \le Q\)) chứa 1 nếu JOI-kun đặt thêm đồ nội thất vào ô \((X_k,Y_k)\) trong thao tác thứ \(k\), hoặc 0 nếu không.
Mọi phân nhóm đều thỏa mãn toàn bộ ràng buộc ở trên.
Ví dụ 1
2 3
0 0 1
0 0 0
3
2 2
2 1
1 2
0
1
0
Thao tác đầu tiên được thực hiện tại ô \((2,2)\). Nếu đặt thêm đồ nội thất vào ô này thì cách bố trí không còn hợp lý. Vì vậy, JOI-kun không đặt đồ nội thất vào ô \((2,2)\) và kết quả là 0.
Thao tác thứ hai được thực hiện tại ô \((2,1)\). Nếu đặt thêm đồ nội thất vào ô này, ta vẫn có thể đi qua các ô \((1,1),(1,2),(2,2),(2,3)\) theo thứ tự đó, nên cách bố trí vẫn hợp lý. Vì vậy, JOI-kun đặt đồ nội thất vào ô \((2,1)\) và kết quả là 1.
Thao tác thứ ba được thực hiện tại ô \((1,2)\). Vì ô \((2,1)\) đã có đồ nội thất, việc đặt thêm đồ nội thất vào ô \((1,2)\) sẽ khiến cách bố trí không còn hợp lý. Vì vậy, kết quả là 0.
Ví dụ 2
2 5
0 0 0 0 0
0 0 0 1 0
2
1 2
2 2
0
1
Thao tác đầu tiên được thực hiện tại ô \((1,2)\). Nếu đặt thêm đồ nội thất vào ô này thì cách bố trí không còn hợp lý. Vì vậy, JOI-kun không đặt thêm đồ nội thất và kết quả là 0. Lưu ý rằng đường đi qua các ô \((1,1),(2,1),(2,2),(2,3),(1,3),(1,4),(1,5),(2,5)\) theo thứ tự đó không đi qua đồ nội thất. Tuy nhiên, bước từ \((2,3)\) đến \((1,3)\) đi về phía bắc, nên không thỏa mãn điều kiện của một cách bố trí hợp lý.
Thao tác thứ hai được thực hiện tại ô \((2,2)\). Nếu đặt thêm đồ nội thất vào ô này, cách bố trí vẫn hợp lý vì có thể đi qua các ô \((1,1),(1,2),(1,3),(1,4),(1,5),(2,5)\) theo thứ tự đó. Vì vậy, JOI-kun đặt thêm đồ nội thất vào ô \((2,2)\) và kết quả là 1.
JOI Open Contest 2020, bài 1. Bản dịch từ đề tiếng Anh chính thức của Ủy ban Olympic Tin học Nhật Bản (JCIOI), theo giấy phép CC BY-SA 4.0.
Trên một đường tròn có \(2N\) điểm được đánh số từ \(1\) đến \(2N\) theo chiều kim đồng hồ. Mỗi điểm có màu trắng hoặc đen; có đúng \(N\) điểm trắng và \(N\) điểm đen.
Ta sẽ vẽ \(N\) đoạn thẳng nối các điểm này sao cho:
Số cặp đoạn thẳng giao nhau trong \(N\) đoạn thẳng được gọi là số giao cắt. Cho thông tin về màu của các điểm, hãy tính số giao cắt lớn nhất có thể đạt được khi vẽ \(N\) đoạn thẳng thỏa mãn các điều kiện trên.
Đọc dữ liệu từ đầu vào chuẩn:
B hoặc W. Ký tự thứ \(i\) (\(1 \le i \le 2N\)) là B nếu điểm thứ \(i\) màu đen, và là W nếu điểm đó màu trắng.Ghi ra đầu ra chuẩn một dòng chứa số giao cắt lớn nhất có thể đạt được khi vẽ \(N\) đoạn thẳng thỏa mãn các điều kiện đã cho.
B và W.B xuất hiện đúng \(N\) lần và ký tự W xuất hiện đúng \(N\) lần.Mọi phân nhóm đều thỏa mãn toàn bộ ràng buộc ở trên.
Ví dụ 1
3
BBWWBW
2
Ví dụ 2
5
BWBWBBWBWW
8
Ví dụ 3
10
WBBBWBBWWBWWBWWBWBWB
41
Ví dụ 4
16
WWWBWBBBBWWBWWBWWBBWWBBBWBBBWWBW
105
JOI Open Contest 2020, bài 2. Bản dịch từ đề tiếng Anh chính thức của Ủy ban Olympic Tin học Nhật Bản (JCIOI), theo giấy phép CC BY-SA 4.0.
Nhà máy điện JOI có \(N\) trạm được đánh số từ \(1\) đến \(N\). Các trạm được nối với nhau bằng \(N-1\) dây dẫn. Dây dẫn thứ \(i\) (\(1 \le i \le N-1\)) nối trạm \(A_i\) với trạm \(B_i\) và có thể đi qua theo cả hai chiều. Có thể đi từ một trạm bất kỳ đến bất kỳ trạm nào khác bằng cách đi qua các dây dẫn.
Mỗi trạm có nhiều nhất một máy phát điện. Mỗi máy phát điện có một công tắc; ban đầu, tất cả các công tắc đều ở trạng thái tắt (OFF). Bạn là giám đốc nhà máy và có thể chọn một số máy phát điện để chuyển công tắc của chúng sang trạng thái bật (ON). Bạn cũng được phép không chọn máy nào.
Các máy phát điện có những tính chất sau:
Cuối cùng, bạn nhận được \(1\) yên từ mỗi máy phát điện hoạt động. Tuy nhiên, bạn phải trả \(1\) yên chi phí sửa chữa cho mỗi máy phát điện bị hỏng. Lợi nhuận là tổng tiền nhận được trừ đi tổng chi phí sửa chữa.
Cho cách nối các trạm bằng dây dẫn và thông tin về vị trí các máy phát điện, hãy tính lợi nhuận lớn nhất mà bạn có thể đạt được.
Đọc dữ liệu từ đầu vào chuẩn:
0 và 1. Ký tự thứ \(i\) (\(1 \le i \le N\)) là 0 nếu trạm \(i\) không có máy phát điện, và là 1 nếu trạm đó có máy phát điện.Ghi ra đầu ra chuẩn một dòng chứa lợi nhuận lớn nhất khi chọn một số máy phát điện và bật công tắc của tất cả các máy được chọn.
0 và 1.1.Mọi phân nhóm đều thỏa mãn toàn bộ ràng buộc ở trên.
Ví dụ 1
6
2 3
4 3
1 3
3 5
6 2
110011
3
Trong ví dụ này, các trạm \(1,2,5,6\) có máy phát điện.
Nếu bật công tắc tại các trạm \(1,2,5\) thì máy phát điện tại cả ba trạm này đều hoạt động, mang lại \(3\) yên. Không có chi phí sửa chữa, nên lợi nhuận là \(3\) yên. Đây là lợi nhuận lớn nhất, vì vậy kết quả là 3.
Nếu bật công tắc tại các trạm \(1,5,6\) thì máy phát điện tại trạm \(2\) bị hỏng, còn các máy tại trạm \(1,5,6\) hoạt động. Bạn nhận được \(3\) yên và phải trả \(1\) yên chi phí sửa chữa, nên lợi nhuận là \(2\) yên.
Nếu bật công tắc tại các trạm \(1,2,5,6\) thì máy phát điện tại trạm \(2\) vẫn bị hỏng, còn các máy tại trạm \(1,5,6\) hoạt động. Bạn nhận được \(3\) yên và phải trả \(1\) yên chi phí sửa chữa, nên lợi nhuận là \(2\) yên.
Ví dụ 2
8
1 2
3 5
6 4
4 5
5 2
7 2
2 8
11111111
3
Ví dụ 3
16
7 10
5 11
9 4
14 12
2 11
14 16
4 2
1 13
11 3
7 1
15 9
2 1
11 6
14 9
8 9
0111111001001110
5
JOI Open Contest 2020, bài 3. Bản dịch từ đề tiếng Anh chính thức của Ủy ban Olympic Tin học Nhật Bản (JCIOI), theo giấy phép CC BY-SA 4.0.