Cho một bảng kí tự kích thước \(M * N\), chỉ gồm hai kí tự `\(X\)` và `\(.\)`.
Yêu cầu: Tìm hình chữ nhật có chu vi lớn nhất thỏa mãn:
Test 1
2 2
..
..
8
Test 2
4 4
X.XX
X..X
..X.
..XX
10
Test 3
3 3
X.X
.X.
X.X
4
Crab vừa rộng mô hình dịch vụ sang chuyển phát hàng hóa khi xe đang rảnh. Có \(n\) gói hàng, gói thứ \(i\) muốn chuyển từ vị trí \(i\) đến vị trí \(i + n\). Cần lập lịch cho xe xuất phát từ vị trí \(0\), chuyển hết các gói hàng và quay lại vị trí xuất phát. Sức chứa của xe là đủ lớn, do đó gói hàng thứ \(i\) sẽ được chuyển nếu ít nhất một lần, lộ trình của xe có đi qua \(i\) trước khi đi qua \(i+n\). Ví dụ với \(n = 3\), lộ trình sau là thỏa mãn: \(0-1-2-1-5-3-6-4-0\)
Cho biết độ dài tuyến đường đi lại giữa mọi cặp vị trí, hãy tìm lộ trình của taxi có tổng độ dài các tuyến đường đi qua là nhỏ nhất. Lưu ý, các tuyến đường trong thành phố là đường một chiều nên khoảng cách từ \(x\) đến \(y\) có thể khác với khoảng cách từ \(y\) đến \(x\), và có thể đường đi ngắn nhất \(x\) và \(y\) không phải là đường đi trực tiếp giữa chúng. Nếu có nhiều lộ trình thỏa mãn có cùng độ dài nhỏ nhất, in ra một lộ trình bất kỳ
Test 1
3
0 4 2 3 5 4 4
4 0 7 5 2 3 1
3 2 0 1 2 1 9
2 3 5 0 9 8 3
2 1 4 6 0 9 1
9 8 1 4 2 0 8
1 2 3 2 5 4 0
12
9
0 2 5 2 3 1 4 6 0
Một chuỗi số là một chuỗi kí tự chỉ gồm các chữ số \(1,2,\ldots,9\).
Có \(N\) chuỗi số, chuỗi số thứ \(i\) kí hiệu là \(A_i\) và có chi phí khi dùng một lần là \(W_i\). Hay nói cách khác, bài toán này cho phép bạn sử dụng vô số lần, nếu dùng đúng \(T\) lần thì chi phí bạn phải bỏ ra là \(T \times W_i\).
Yêu cầu: Cho một số nguyên dương \(M\). Bạn hãy tìm cách sử dụng \(N\) chuỗi số này và ghép lại theo một thứ tự bất kì và bao nhiêu lần tùy thích để có được một số nguyên dương chia hết cho \(M\) và mất chi phí ít nhất.
Test 1
2 2
123 2
13 10
-1
Không thể tạo ra số nguyên dương chia hết cho \(2\).
Test 1
2 6
2 20
77 6
32
Tạo được số nguyên dương \(77772\) chi hết cho \(6\) với chi phí \(6+6+20=32\).
Cho một dãy \(N\) số nguyên dương \(A_1,A_2,…,A_N\). Một thao tác thay đổi là việc chọn một phần tử \(a_i (1\leq i \leq N)\) và thay thế \(A_i=A_i+1\).
Yêu cầu: Bạn cần trả lời \(q\) truy vấn. Mỗi truy vấn cho bạn một dãy con liên tiếp trong đoạn từ \(l\rightarrow r\) và yêu cầu tính xem số lượng thao tác thay đổi tối thiểu để cho dãy con đã cho thành dãy không giảm.
Test 1
5 3
2 10 4 2 5
3 5
2 2
1 4
2
0
14
Cho \(n\) xâu \(s_1,s_2,\ldots,s_n\). Chi phí để sử dụng xâu \(s_i\) là \(c_i\).
Lưu ý: Có thể sử dụng xâu \(s_i\) nhiều lần và chi phí là \(c_i\) nhân với số lần dùng.
Yêu cầu: Tìm chi phí tối thiểu để sử dụng các xâu \(s_i\) ghép lại với nhau thành xâu đối xứng.
Test 1
3
ba 3
abc 4
cbaa 5
7
Test 2
2
abcab 5
cba 3
11
Test 3
2
abc 1
ab 2
-1
Thành vẽ một cây (đồ thị vô hướng liên thông không có chu trình) với \(N\) nút được đánh số từ 1 đến \(N\) và muốn tô màu các nút của cây bằng màu đen hoặc trắng. Trên cây, hai nút có thể ghép đôi với nhau khi và chỉ khi chúng thỏa mãn các điều kiện sau:
Yêu cầu: hãy giúp Thành tô màu các nút của cây bằng màu đen hoặc trắng sao cho số lượng cặp nút có thể ghép đôi với nhau là lớn nhất.
Dòng đầu tiên chứa một số nguyên dương \(T\) (\(T\leq 10\)) là số lượng bộ test, mỗi bộ test chứa thông tin về một cây cần tô màu có cấu trúc như sau:
Test 1
2
8
1 2
2 3
2 4
4 5
5 6
6 7
6 8
2
1 2
7
1
Có 2 bộ test trong dữ liệu vào (T = 2).
Đối với bộ test thứ nhất, cây có 8 nút và 7 cạnh, trong hình vẽ là cách tô màu cho số lượng cặp nút có thể ghép đôi là lớn nhất (7 cặp). Các cặp đó là: (1, 3), (1, 4), (3, 4), (4, 5), (5, 7)
(5, 8), (7, 8).
Đối với bộ test thứ hai, cây chỉ có 2 nút và được nối với nhau bởi một cạnh duy nhất. Vì vậy cần tô cả 2 nút đó bằng màu trắng và tạo ra duy nhất một cặp nút có thể ghép đôi.