| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Mê cung (Thi thử VOI 2021 Day 1) | 6 (p) | 1.0s | 512M |
| 2 | Dãy tăng kép (Thi thử VOI 2021 Day 1) | 7 (p) | 1.0s | 512M |
| 3 | Tập hợp trên cây (Thi thử VOI 2021 Day 1) | 7 (p) | 1.0s | 512M |
Bài 1. Mê cung
Một mê cung được biểu diễn bằng một bảng vuông \(A\) kích thước \(n \times n\) ô, các hàng được đánh số từ \(1\) đến \(n\) từ trên xuống dưới, các cột được đánh số từ \(1\) đến \(n\) từ trái sang phải, ô nằm giao giữa hàng \(i\) và cột \(j\) được gọi là ô \((i, j)\). Một số ô của bảng có chướng ngại vật và được đánh dấu là \(1\), những ô còn lại là các ô trống và được đánh dấu \(0\). Một robot chỉ di chuyển trong bảng và có thể đi từ ô trống này sang ô trống khác lân cận kề cạnh. Một đường đi của robot giữa hai ô trống là một dãy các ô lân cận từ ô này tới ô kia và không có ô nào đi qua quá một lần, độ dài của đường đi được tính bằng số lượng ô mà robot đi qua. Bảng \(A\) là mê cung nên giữa hai ô trống bất kỳ của bảng có đúng một đường đi giữa chúng.
Hãy xử lí \(q\) thao tác, mỗi thao tác thuộc một trong hai dạng sau:
1 u v, thao tác này sẽ thực hiện đặt chướng ngại vật vào ô \((u, v)\). Chú ý rằng, sau khi thực hiện thao tác loại này, bảng \(A\) có thể không còn là mê cung nữa;2 u v x y, thao tác này cần tính độ dài đường đi từ ô \((u, v)\) đến ô \((x, y)\). Nếu không tồn tại đường đi đưa ra -1.{0, 1} mô tả hàng thứ \(i\) của \(A\);Test 1
3 2
000
110
000
2 1 1 3 1
1 2 3
2 1 1 3 1
7
-1
Dãy con của một dãy là dãy thu được bằng cách xoá đi một số phần tử của dãy ban đầu (có thể không xoá phần tử nào) và giữ nguyên thứ tự của các phần tử còn lại. Một dãy số được gọi là dãy tăng kép nếu có thể tách nó thành hai dãy con khác rỗng, sao cho mỗi phần tử của dãy ban đầu thuộc vào đúng một trong hai dãy con đó, và các phần tử trong cùng một dãy con thì tăng nghiêm ngặt.
Cho dãy số nguyên \(a\) có \(n\) phần tử, hãy đếm số dãy con của \(a\) là dãy tăng kép.
Test 1
4
3 3 4 2
9
Cho \(1\) cây \(n\) đỉnh và \(1\) tập \(A\) gồm \(m\) đỉnh trên cây. Khoảng cách giữa \(2\) đỉnh trên cây là số cạnh trên đường đi giữa \(2\) đỉnh đó. Người ta thực hiện \(q\) thao tác thuộc \(1\) trong \(2\) loại sau:
Test 1
7 3 6
1 2
2 3
2 4
1 5
5 6
6 7
1 4 6
2 1
1 1
2 1
1 6
1 3
2 7
0 1
2 2
5 2