Trại Hè Miền Bắc 2025 - Buổi 3
Basic Diameter
Nộp bàiPoint: 100
Cho một cây vô hướng gồm ~n~ đỉnh.
Hãy tìm đường đi dài nhất ở trên cây, biết rằng độ dài đường đi từ ~u~ tới ~v~ chính bằng số cạnh trên đường đi đơn từ ~u~ tới ~v~.
Input
- Dòng đầu chứa hai số nguyên ~n~ ~(1 \le n \le 10^5)~.
- ~n-1~ dòng tiếp theo, mỗi dòng gồm hai số nguyên ~u~, ~v~ miêu tả cạnh của cây.
Output
- Đưa ra khoảng cách xa nhất của hai đỉnh bất kì trên cây.
Sample Input 1
5
1 2
1 3
3 4
3 5
Sample Output 1
3
Center Tree
Nộp bàiPoint: 100
Cho một cây vô hướng gồm ~n~ đỉnh.
Định nghĩa "bán kính của một đỉnh" hay ~R(u)~ là số cạnh ít nhất cần dùng để đỉnh này có thể tới thăm bất kì đỉnh nào trên cây.
Hãy tìm ~R(u)~ nhỏ nhất, nếu có nhiều đỉnh ~u~ thỏa mãn, in ra tất cả các đỉnh đó theo thứ tự từ bé tới lớn.
Input
- Dòng đầu chứa hai số nguyên ~n~ ~(1 \le n \le 10^5)~.
- ~n-1~ dòng tiếp theo, mỗi dòng gồm hai số nguyên ~u~, ~v~ miêu tả cạnh của cây.
Output
- Dòng đầu tiên gồm hai số nguyên dương ~r~ và ~k~ lần lượt là bán kính nhỏ nhất và số đỉnh thỏa mãn.
- Dòng thứ hai gồm ~k~ số nguyên dương là các đỉnh thỏa mãn theo thứ tự tăng dần.
Sample Input 1
5
1 2
1 3
3 4
3 5
Sample Output 1
2 2
1 3
Tree Bit Value
Nộp bàiPoint: 100
Cho một cây vô hướng gồm ~n~ đỉnh. Đỉnh thứ ~i~ có giá trị là ~a_i~.
Hai đỉnh ~u~ và ~v~ được gọi là chung nhóm nếu như giá trị ~a_u~ và ~a_v~ của chúng có chung số lượng bit ~1~. Ví dụ, nếu ~a_u = 6 = (110)_2~ và ~a_v = 9 = (1001)_2~ thì chúng chung nhóm do cùng có ~2~ bit ~1~. Ngược lại nếu cặp giá trị là ~(7,8)~ thì không.
Hãy tìm ra khoảng cách dài nhất giữa hai đỉnh bất kì chung nhóm, biết rằng độ dài đường đi từ ~u~ tới ~v~ chính bằng số cạnh trên đường đi đơn từ ~u~ tới ~v~.
Input
- Dòng đầu chứa hai số nguyên ~n~ ~(1 \le n \le 2 \times 10^5)~.
- Dòng thứ hai gồm ~n~ số nguyên dương miêu tả giá trị dãy ~a~, ~(a_i \le n)~.
- ~n-1~ dòng tiếp theo, mỗi dòng gồm hai số nguyên ~u~, ~v~ miêu tả cạnh của cây.
Output
- In ra kết quả của bài toán.
Sample Input 1
4
4 3 2 2
2 1
2 3
2 4
Sample Output 1
2
Duck Country
Nộp bàiPoint: 100
Ivan Tèo rất thích thịt vịt, một hôm cậu tới thăm đất nước DuckLand, gồm ~n~ thành phố được nối với nhau bằng ~n-1~ con đường hai chiều, đảm bảo rằng ~n~ thành phố thông thương với nhau. Con đường thứ ~i~ nối hai thành phố ~u_i,v_i~ với nhau và gồm ~c_i~ con vịt.
Giả sử Tèo xuất phát từ thành phố ~s~, cậu sẽ đi tới một thành phố khác sao cho không con đường nào được đi qua nhiều hơn ~1~ lần, và mua hết các con vịt trên đường đi đó.
Tèo muốn biết nếu cậu xuất phát từ thành phố ~s~ với ~s~ lần lượt tương ứng ~1,2,3,...,n~, cậu sẽ mua được tối đa bao nhiêu con vịt nếu đi tối ưu?
Input
- Dòng đầu là số nguyên ~n~ ~(1 \le n \le 10^5)~
- ~n-1~ dòng tiếp theo, dòng thứ ~i~ chứa ~3~ số nguyên dương ~u_i,v_i,c_i~ xác định một con đường hai chiều giữa thành phố ~u_i,v_i~ với độ dài ~c_i~. ~(u_i,v_i \le n, c_i \le 10^4)~
Subtask
- Subtask ~1~ ~(50\%)~ : ~K \le N \le 10^3~
- Subtask ~2~ ~(50\%)~ : Không ràng buộc gì thêm.
Output
- Gồm ~n~ số nguyên dương trên một dòng, số thứ ~i~ là số con vịt tối đa Tèo có thể mua nếu đi từ thành phố ~s = i~.
Sample Input 1
4
1 2 4
2 3 5
3 4 7
Sample Output 1
16 12 9 16
Đỉnh tốt
Nộp bàiPoint: 100
Cho một cây vô hướng gồm ~n~ đỉnh ~(1 \le n \le 1e5)~ và ~m~ đỉnh đặc biệt ~(1 \le m \le n)~, kèm một số ~k~ nguyên dương bất kì ~(1 \le k \le n)~. Một đỉnh ~u~ được gọi là tốt nếu như với mọi đỉnh ~v~ thuộc tập ~m~ đỉnh đặc biệt, ta luôn có ~dist(u,v) \le k~. Ở đây, ~dist(u,v)~ là khoảng cách của đỉnh ~u~ và ~v~ trên cây, hay bằng số cạnh trên đường đi ngắn nhất từ đỉnh ~u~ tới đỉnh ~v~. Hãy đếm xem có bao nhiêu đỉnh được coi là "tốt".
Input:
- Dòng đầu gồm 3 số ~n,m,k. (1 \le m \le n \le 10^5, 1 \le k \le 10^5).~
- ~n-1~ dòng sau mỗi dòng gồm 2 số ~u,v (1 \le u,v \le n)~ là cạnh nối từ đỉnh ~u~ tới ~v~.
- Dòng cuối gồm ~m~ số miêu tả các đỉnh đặc biệt.
Output:
- Số đỉnh tốt.
Sample Test
Input:
6 2 3
1 5
2 3
3 4
4 5
5 6
1 2
Output:
3
Giải thích:
- 3 đỉnh tốt là đỉnh 3,4,5.
Ràng buộc
- Subtask 1: ~n <= 500.~ (50%)
- Subtask 2: Với mỗi thành phố, chỉ có tối đa 2 con đường nối tới các thành phố khác.
- Subtask 3: Không giới hạn gì thêm. (20%).
GCDist
Nộp bàiPoint: 100
Cho một cây vô hướng gồm ~n~ đỉnh. Đỉnh thứ ~i~ ~(1 \le i \le n)~ có trọng số là ~a_i~, cạnh thứ ~i~ ~(1 \le i \le n-1)~ có trọng số là ~w_i~.
Định nghĩa hàm ~dist(u,v)~ là tổng trọng số của các cạnh trên đường đi đơn từ đỉnh ~u~ tới đỉnh ~v~.
Hãy tìm ~max(dist(u,v) \times gcd(a_u,a_v)) \forall u,v \in [1,n]~.
Input
- Dòng đầu tiên gồm số nguyên dương ~n~.
- Dòng thứ hai gồm ~n~ số nguyên, số thứ ~i~ là ~a_i~ miêu tả trọng số của đỉnh thứ ~i~.
- ~n-1~ dòng tiếp theo, dòng thứ ~i~ gồm ba số nguyên dương ~u_i,v_i,w_i~ miêu tả cạnh thứ ~i~ của cây.
Constraint
- ~1 \le n \le 10^5~
- ~1 \le a_i \le 10^5~
- ~1 \le w_i \le 10^5~
Subtask
- Subtask ~1~ ~(30\%)~: ~n \le 2000~.
- Subtask ~2~ ~(20\%)~: ~a_i = 1; \forall i \in [1,n]~
- Subtask ~3~ ~(30\%)~: ~n,a_i \le 4 \times 10^4~
- Subtask ~4~ ~(20\%)~: Không có ràng buộc gì thêm.
Output
- In ra kết quả của bài toán.
Sample Input 1:
2
10 10
1 2 10
Sample Output 1:
100
New Roads
Nộp bàiPoint: 100
Đất nước ~ABC~ gồm ~n~ thành phố. Chính quyền đang có kế hoạch xây dựng các con đường mới.
Bản kế hoạch gồm các con đường có sẽ xây dựng theo thứ tự và các yêu cầu tính toán giúp chính quyền quản lý đất nước tốt hơn. Thông tin được liệt kê gồm 1 trong 2 loại:
- ~1~ ~u~ ~v~ ~w~: Nếu ~u~ đã có thể đi tới ~v~ bằng những con đường mới, ta loại bỏ đề xuất này. Nếu không, xây dựng con đường mới kết nối từ ~u~ tới ~v~ với độ dài ~w~.
- ~2~ ~u~: Chính quyền muốn biết sau khi những con đường trên được xây, từ thành phố ~u~ có thể đi tới thành phố xa nhất cách đó bao nhiêu xa.
Yêu cầu: Hãy giúp chính quyền tính toán các thông tin trong bản kế hoạch đặt ra.
Input
- Dòng đầu chứa ba số nguyên ~n,m~.
- ~m~ dòng tiếp theo, mỗi dòng chứa ~1~ trong ~2~ loại thông tin trong bản kế hoạch của nhà vua. Dữ liệu đảm bảo sau khi thực hiện hết bản kế hoạch, tất cả các thành phố được kết nối với nhau bằng hệ thống đường mới.
Output
- Đưa ra khoảng cách xa nhất có thể đi được tương ứng với các thông tin loại ~2~. Mỗi kết quả được đưa theo thứ tự, mỗi số trên một dòng.
Subtask
Trong tất cả các test, ~1 \le w \le 10^9~
- Subtask ~1~: ~n,m \le 2 \times 10^3~ ~(30\%)~
- Subtask ~2~: ~n \le 10^5, m \le 3 \times 10^5~ và tất cả các truy vấn loại ~1~ xuất hiện trước các truy vấn loại ~2~. ~(30\%)~
- Subtask ~3~: ~n \le 10^5, n \le 3 \times 10^5~ ~(40\%)~.
Sample Input 1
4 8
1 1 2 4
1 1 3 5
1 2 3 12
1 2 4 3
2 1
2 2
2 3
2 4
Sample Output 1
7
9
12
12
Hà Nội Cánh Tay
Nộp bàiPoint: 100
Be careful ... with recursion!
Đất nước HNAms gồm ~n~ thành phố được đánh số từ ~1~ tới ~n~. Đất nước HNAms rất thích bóng đá, ở thành phố thứ ~i~ có số sân vận động là ~a_i~. Do một vài chính sách đặc biệt của Bộ Thể Thao mà số sân vận động của các thành phố là không quá ~m~. Các thành phố của HNAms cũng có ~n-1~ con đường hai chiều để kết nối các thành phố lại. Con đường thứ ~i~ sẽ nối hai thành phố ~u_i~ và ~v_i~, đảm bảo rằng mọi cặp thành phố đều có lộ trình di chuyển tới nhau. Nói cách khác, như bao đất nước trong thế giới OI, HNAms có thể ví như một đồ thị dạng cây.
Bộ Xây Dựng đã tạo ra một phương pháp để đánh giá độ hiệu quả trong giao thông của một tổ hợp các thành phố:
- Giả sử ta có một tập thành phố ~u_1,u_2,...,u_k~, độ hiệu quả trong giao thông của tập hợp thành phố này chính bằng đường đi ngắn nhất nếu có thể xuất phát tại một thành phố tùy ý và đi qua hết các thành phố trong tập. Đường đi ở HNAms được tính theo số con đường mà lộ trình này đi qua.
Để hiểu rõ hơn về cách tính độ hiệu quả, hãy nhìn vào hình vẽ trên:
- Giả sử tập thành phố là ~[3,4,5]~, độ hiệu quả của tổ hợp này là ~5~, bởi ta sẽ đi theo lộ trình: ~3 \rightarrow 2 \rightarrow 1 \rightarrow 4 \rightarrow 1 \rightarrow 5~. Dễ thấy không có lộ trình nào có thể ngắn hơn.
- Giả sử tập thành phố là ~[2,5]~, độ hiệu quả của tổ hợp này là ~2~ với lộ trình: ~2 \rightarrow 1 \rightarrow 5~.
- Đối với tập thành phố rỗng hoặc có số thành phố bằng ~1~, độ hiệu quả được đánh giá là bằng ~0~.
Vì là một người đam mê bóng đá, chủ tịch HuySalad quyết định ăn mừng ~120~ năm sinh nhật của FIFA bằng việc tổ chức một mùa giải bóng đá bất tận, trải dài từ ngày ~1~ tới ngày ~m~ (hãy cố chấp nhận rằng thực sự có nhiều ngày như vậy). Vào ngày thứ ~x~ ~(1 \le x \le m)~, các trận đấu bóng đá sẽ được tổ chức tại các thành phố có số sân vận động chia hết cho ~x~.
Như vậy, lưu lượng khách di chuyển sẽ là rất lớn, Chính Phủ giao cho bạn - Bộ Công Nghệ - đối với mỗi ngày, hãy đánh giá độ hiệu quả của tổ hợp thành phố được tổ chức bóng đá. Nói cách khác, đối với mỗi ngày thứ ~x~ ~(1 \le x \le m)~, bạn sẽ phải đánh giá độ hiệu quả của tập thành phố ~[u_1,u_2,...,u_k]~ thỏa mãn ~x \mid a[u_i] ~ ~(\forall 1 \le i \le k)~.
Input:
- Dòng thứ nhất chứa hai số nguyên dương ~n,m~ ~(1 \le n \le 2 \times 10^5, 1 \le m \le 10^5)~
- Dòng thứ hai chứa ~n~ số nguyên dương, số thứ ~i~ là ~a_i~, miêu tả số sân vận động ở thành phố ~i~ ~(1 \le a_i \le m)~.
- ~n-1~ dòng tiếp theo, dòng thứ ~i~ gồm hai số nguyên dương ~u_i~ và ~v_i~ miêu tả con đường hai chiều nối từ thành phố ~u_i~ tới thành phố ~v_i~.
Output:
- In ra ~m~ dòng, dòng thứ ~i~ là độ hiệu quả của tổ hợp thành phố được sử dụng trong ngày thứ ~i~.
Subtask:
- Subtask ~1~ (~15\%~ số điểm): Tất cả các con đường thứ ~i~ trong khoảng ~[1,n-1]~ có dạng ~u_i = i, v_i = i+1~.
- Subtask ~2~ (~10\%~ số điểm): ~n \le 10, m = 1~.
- Subtask ~3~ (~15\%~ số điểm): ~m = 1~
- Subtask ~4~ (~10\%~ số điểm): ~m = 2~
- Subtask ~5~ (~30\%~ số điểm): ~n \le 5 \times 10^4, m \le 10^4~
- Subtask ~6~ (~20\%~ số điểm): Không có giới hạn gì thêm.
Sample Input 1
5 1
1 1 1 1 1
1 3
3 2
1 4
3 5
Sample Output 1
5
Explanation 1
Do ~m=1~ nên chỉ có ngày đầu tiên được tổ chức bóng đá, do tất cả các thành phố đều có số sân vận động chia hết cho ~1~, nên ta có tập ~[1,2,3,4,5]~.
Độ hiệu quả của tập này là ~5~, với lộ trình ~5 \rightarrow 3 \rightarrow 2 \rightarrow 3 \rightarrow 1 \rightarrow 4~
Sample Input 2
6 5
2 2 3 4 3 1
1 3
3 2
3 4
1 5
1 6
Sample Output 2
7
4
2
0
0
Explanation 2
Ta có các tập thành phố sau:
- Ngày ~1~: ~[1,2,3,4,5,6]~.
- Ngày ~2~: ~[1,2,4]~
- Ngày ~3~: ~[3,5]~
- Ngày ~4~: ~[4]~
- Ngày ~5~: ~[]~
- Do ngày ~4~ chỉ có một và ngày ~5~ không có thành phố nào trong tập, độ hiệu quả của chúng đều bằng ~0~.