JOI 2020 - Kỳ thi mở rộng

Bộ đề bài

# 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

1. JOI 2020 - Furniture

Điểm: 100 (p) Thời gian: 3.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

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)\)\((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.

Dữ liệu vào

Đọ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.

  • Dòng đầu chứa hai số \(N,M\).
  • Trong \(N\) dòng tiếp theo, dòng thứ \(i\) chứa \(M\) số \(C_{i,1},C_{i,2},\ldots,C_{i,M}\).
  • Dòng tiếp theo chứa số \(Q\).
  • Trong \(Q\) dòng tiếp theo, dòng thứ \(k\) chứa hai số \(X_k,Y_k\).

Dữ liệu ra

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.

Ràng buộc

  • \(1 \le N \le 1000\).
  • \(1 \le M \le 1000\).
  • \(0 \le C_{i,j} \le 1\) với \(1 \le i \le N\), \(1 \le j \le M\).
  • \(C_{1,1}=0\)\(C_{N,M}=0\).
  • Cách bố trí ban đầu là hợp lý.
  • \(1 \le Q \le N \times M\).
  • \(1 \le X_k \le N\)\(1 \le Y_k \le M\) với \(1 \le k \le Q\).
  • \((X_k,Y_k) \ne (1,1)\)\((X_k,Y_k) \ne (N,M)\) với \(1 \le k \le Q\).
  • \(C_{X_k,Y_k} \ne 1\) với \(1 \le k \le Q\).
  • \((X_k,Y_k) \ne (X_l,Y_l)\) với \(1 \le k < l \le Q\).

Phân nhóm

Mọi phân nhóm đều thỏa mãn toàn bộ ràng buộc ở trên.

  1. 5 điểm: \(N \le 100\)\(M \le 100\).
  2. 95 điểm: Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
2 3
0 0 1
0 0 0
3
2 2
2 1
1 2
Output
0
1
0
Giải thích

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

Input
2 5
0 0 0 0 0
0 0 0 1 0
2
1 2
2 2
Output
0
1
Giải thích

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.

Nguồn

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.

2. JOI 2020 - Monochrome Points

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

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:

  • Mỗi điểm là đầu mút của đúng một đoạn thẳng.
  • Mỗi đoạn thẳng nối một điểm trắng với một điểm đen.

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.

Dữ liệu vào

Đọc dữ liệu từ đầu vào chuẩn:

  • Dòng đầu chứa số nguyên \(N\).
  • Dòng thứ hai chứa xâu \(S\) có độ dài \(2N\), mô tả màu của các điểm. Mỗi ký tự của \(S\)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.

Dữ liệu ra

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.

Ràng buộc

  • \(1 \le N \le 200000\).
  • \(S\) có độ dài \(2N\), chỉ gồm các ký tự BW.
  • Trong \(S\), ký tự B xuất hiện đúng \(N\) lần và ký tự W xuất hiện đúng \(N\) lần.

Phân nhóm

Mọi phân nhóm đều thỏa mãn toàn bộ ràng buộc ở trên.

  1. 4 điểm: \(N \le 8\).
  2. 21 điểm: \(N \le 300\).
  3. 10 điểm: \(N \le 2000\).
  4. 65 điểm: Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
3
BBWWBW
Output
2
Giải thích

Nếu vẽ các đoạn thẳng như hình bên trái thì số giao cắt là \(2\). Nếu vẽ như hình bên phải thì số giao cắt là \(3\), nhưng cách vẽ đó không thỏa mãn các điều kiện của đề bài.

Ví dụ 2

Input
5
BWBWBBWBWW
Output
8

Ví dụ 3

Input
10
WBBBWBBWWBWWBWWBWBWB
Output
41

Ví dụ 4

Input
16
WWWBWBBBBWWBWWBWWBBWWBBBWBBBWWBW
Output
105

Nguồn

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.

3. JOI 2020 - Power Plant

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

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:

  • Giả sử các trạm \(x,y,z\) đều có máy phát điện và có thể đi từ \(x\) đến \(y\), rồi từ \(y\) đến \(z\), theo thứ tự đó mà không đi qua cùng một dây dẫn hai lần. Nếu công tắc của máy phát điện tại \(x\)\(z\) đều bật thì máy phát điện tại \(y\) bị hỏng.
  • Một máy phát điện hoạt động nếu công tắc của nó bật và nó không bị hỏng.

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.

Dữ liệu vào

Đọc dữ liệu từ đầu vào chuẩn:

  • Dòng đầu chứa số nguyên \(N\).
  • Trong \(N-1\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(A_i,B_i\), mô tả hai đầu của dây dẫn thứ \(i\).
  • Dòng cuối chứa xâu \(S\) có độ dài \(N\), chỉ gồm các ký tự 01. 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.

Dữ liệu ra

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.

Ràng buộc

  • \(1 \le N \le 200000\).
  • \(1 \le A_i \le N\) với \(1 \le i \le N-1\).
  • \(1 \le B_i \le N\) với \(1 \le i \le N-1\).
  • \(A_i \ne B_i\) với \(1 \le i \le N-1\).
  • 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.
  • \(S\) có độ dài \(N\), chỉ gồm các ký tự 01.
  • \(S\) chứa ít nhất một ký tự 1.

Phân nhóm

Mọi phân nhóm đều thỏa mãn toàn bộ ràng buộc ở trên.

  1. 6 điểm: \(N \le 16\).
  2. 41 điểm: \(N \le 2000\).
  3. 53 điểm: Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
6
2 3
4 3
1 3
3 5
6 2
110011
Output
3
Giải thích

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

Input
8
1 2
3 5
6 4
4 5
5 2
7 2
2 8
11111111
Output
3

Ví dụ 3

Input
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
Output
5

Nguồn

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.