Dãy đèn (OLP MT&TN 2022 CT)
Thuận có một dãy đèn gồm đèn, các đèn được đánh số từ \(1\) đến \(n\). Mỗi đèn có ba trạng thái, trạng thái sáng màu xanh hoặc sáng màu đỏ hoặc tắt. Ban đầu tất cả các đèn đều ở trạng thái tắt. Tương ứng với đèn thứ có công tắc thứ \(i (1 \le i \le n)\), khi tác động vào công tắc này trạng thái đèn thứ \(i\) sẽ thay đổi như sau:
- Nếu đèn đang ở trạng thái tắt sẽ chuyển sang trạng thái sáng màu xanh;
- Nếu đèn đang ở trạng thái sáng màu xanh sẽ chuyển sang trạng thái sáng màu đỏ;
- Nếu đèn đang ở trạng thái sáng màu đỏ sẽ chuyển sang trạng thái tắt.
Thuận đã thực hiện một dãy gồm \(t\) lần tác động vào các công tắc và nhận được dãy đèn gồm \(a\) đèn ở trạng thái sáng màu xanh và \(b\) đèn ở trạng thái sáng màu đỏ. Là người yêu thích Tin học, Thuận muốn tính xem có bao nhiêu dãy gồm đúng \(t\) thao tác để từ trạng thái ban đầu (tất cả các đèn ở trạng thái tắt), sau khi thực hiện dãy thao tác có \(a\) đèn ở trạng thái sáng màu xanh và \(b\) đèn ở trạng thái sáng màu đỏ.
Yêu cầu: Cho các số nguyên \(n, t, a, b\), gọi là số dãy gồm thao tác để từ trạng thái ban đầu nhận được dãy có \(a\) đèn ở trạng thái sáng màu xanh và \(b\) đèn ở trạng thái sáng màu đỏ. Hãy tính \(S \% (10^9 + 7)\), trong đó \(\%\) là phép toán chia lấy dư.
Input
Vào từ thiết bị vào chuẩn gồm một dòng chứa bốn số nguyên \(n, t, a, b\) cách nhau bởi dấu cách \((0 \le a, b; a + b \le n)\);
Output
- Ghi ra thiết bị ra chuẩn một số nguyên duy nhất là giá trị \(S \% (10^9 + 7)\)
Scoring
- Subtask #1 (\(30\%\) số điểm): \(n, t \le 6\);
- Subtask #2 (\(30\%\) số điểm): \(n, t \le 60\);
- Subtask #3 (\(40\%\) số điểm): \(n, t \le 600\);
Example
Test 1
Input
2 3 1 1
Output
6
Note
Sáu dãy gồm 3 thao tác (vào các công tắc) thỏa mãn:
1, 1, 2
1, 2, 1
1, 2, 2
2, 1, 1
2, 1, 2
2, 2, 1
Đặc trưng của cây (OLP MT&TN 2022 CT)
Khi nghiên cứu về lý thuyết đồ thị, Thuận đã tìm ra một đặc trưng cho cây. Cụ thể, với cây
gồm \(n\) đỉnh, đỉnh \(i (1 \le i \le n)\) có trọng số là \(w[i]\), gọi \(f(i, j)\) là độ mất cân bằng giữa hai
đỉnh \(i\) và \(j (1 \le i, j \le n)\), trọng số \(f(i, j)\) được tính bằng chênh lệnh trọng số giữa đỉnh có
trọng số lớn nhất với đỉnh có trọng số bé nhất trong các đỉnh nằm trên đường đi từ \(i\) đến \(j\)
(bao gồm cả \(i, j\)). Độ mất cân bằng \(T\) của cây là tổng độ mất cân bằng giữa mọi cặp đỉnh.
Yêu cầu: Cho một cây và trọng số các đỉnh, hãy tính giá trị \(T\).
Input
Vào từ thiết bị vào chuẩn có khuôn dạng:
- Dòng đầu chứa số nguyên dương \(n\);
- Dòng thứ hai gồm \(n\) số nguyên \(w_1, w_2, ..., w_n (1 \le w_i \le 10^6)\);
- Dòng thứ \(k (1 \le k \le n - 1)\) trong \(n - 1\) dòng tiếp theo chứa hai số \(u_k, v_k (1 \le u_k, v_k \le n)\)
mô tả cạnh thứ \(k\) của cây.
Output
- Ghi ra thiết bị ra chuẩn một số nguyên là giá trị \(T\) tính được.
Scoring
- Subtask \(1\) (\(20\%\) số điểm): \(n \le 700\);
- Subtask \(2\) (\(20\%\) số điểm): \(n \le 7000\);
- Subtask \(3\) (\(20\%\) số điểm): \(1 \le w_i \le 2\);
- Subtask \(4\) (\(20\%\) số điểm): \(n \le 10^5\);
- Subtask \(5\) (\(20\%\) số điểm): \(n \le 10^6\);
Example
Test 1
Input
4
1 1 2 3
1 2
1 3
1 4
Output
8
Test 2
Input
4
1 2 2 2
1 2
2 3
3 4
Output
3
Bảng chữ cái (OLP MT&TN 2022 CT)
Thuận có một bảng gồm \(r\) hàng và \(c\) cột, mỗi ô trên bảng có ghi một chữ cái in hoa. Để làm giảm kích thước của bảng, Thuận muốn xóa đi một số cột của bảng này hoặc giữ nguyên, nhưng phải bảo đảm rằng, sau khi xóa, nếu ghép các kí tự trên một hàng để tạo thành xâu kí tự, \(r\) xâu kí tự tạo bởi \(r\) hàng phải đôi một phân biệt.
Yêu cầu: Hãy cho biết Thuận có bao nhiêu cách xóa (hoặc giữ nguyên) các cột để thỏa mãn điều kiện này. Hai cách được gọi là khác nhau nếu tồn tại một cột trong cách này không bị xóa còn trong cách kia thì bị xóa.
Input
Vào từ thiết bị vào chuẩn có khuôn dạng:
- Dòng đầu tiên chứa hai số nguyên \(r (r \le 1000)\) và \(c\) là số hàng và số cột của bảng;
- Trong \(r\) dòng tiếp theo, mỗi dòng chứa \(c\) chữ cái in hoa mô tả bảng.
Output
Ghi ra thiết bị ra chuẩn một dòng chứa một số nguyên là số cách đếm được thỏa mãn điều kiện.
Scoring
- Subtask \(1\) (\(26\%\) số điểm): \(c \le 10\);
- Subtask \(2\) (\(32\%\) số điểm): \(c \le 15\);
- Subtask \(3\) (\(42\%\) số điểm): \(c \le 20\).
Example
Test 1
Input
3 3
ACD
BCE
BAD
Output
4
Note
Thuận cần phải giữ lại ít nhất 2 cột. Ví dụ, nếu xóa cột 2 (giữ lại các cột 1 và 3) khi đó, các xâu kí tự AD, BE, BD tạo bởi 3 hàng là đôi một phân biệt.
Công việc (OLP MT&TN 2021 CT)
Cho \(n\) công việc và mối quan hệ xử lí trước sau được mô tả bằng một cây. Mỗi nút tương ứng với một công việc và phải thực hiện trong một đơn vị thời gian. Các công việc tương ứng với nút lá cần được thực hiện trước công việc tương ứng với nút cha. Có m máy, mỗi máy trong một đơn vị thời gian chỉ xử lí liên tục được một công việc.
Yêu cầu: Xếp lịch để thời gian hoàn thành là sớm nhất.
Input
- Vào từ thiết bị vào chuẩn có khuôn dạng:
- Dòng đầu chứa hai số \(n, m\);
- Tiếp theo là \(n-1\) dòng, mỗi dòng mô tả một cạnh của cây.
Output
- Ghi ra thiết bị ra chuẩn một số nguyên là thời gian nhỏ nhất cần để thực hiện.
Scoring
- Subtask \(1\) (\(40\%\) số điểm): \(n≤ 3000\);
- Subtask \(2\) (\(60\%\) số điểm): \(n≤ 300000\).
Example
Test 1
Input
14 3
1 3
2 3
3 4
7 4
4 5
5 6
10 11
9 11
8 11
11 5
12 13
13 6
14 6
Output
6