Cho đồ thị vô hướng đầy đủ có \(N\) đỉnh (được đánh số từ \(1\) đến \(N\)). Cạnh nối đỉnh \(i\) và đỉnh \(j\) sẽ có trọng số bằng \(D_{i,j}\). Lưu ý rằng \(D_{i,j}=D_{j,i}\) với mọi cặp \(i \ne j\).
Hãy tìm cách chọn ra một tập cạnh sao cho tổng trọng số của chúng là lớn nhất và các đầu mút của chúng không trùng nhau (nói cách khác, hai cạnh \((u,v)\) và \((p,q)\) khác nhau bất kỳ trong tập được chọn ra phải thỏa mãn \(u\), \(v\), \(p\), \(q\) là bốn số nguyên phân biệt).
Test 1
4
1 5 4
7 9
6
14
Test 2
3
1 2
4
4
Cho một cây gồm \(N\) đỉnh được đánh số từ \(1\) đến \(N\). Với mỗi đỉnh \(i\) \((2\le i\le N)\) tồn tại đúng một cạnh nối \(i\) và \(\left\lfloor\dfrac{i}{2}\right\rfloor\). Ta định nghĩa khoảng cách từ đỉnh \(u\) đến đỉnh \(v\) trên cây (và ngược lại) bằng đúng số lượng cạnh xuất hiện trên đường đi duy nhất từ \(u\) đến \(v\).
Cho biết hai số nguyên \(X\) và \(K\) \((1\le X\le N, 0\le K\le N-1)\), bạn hãy viết chương trình xác định có bao nhiêu đỉnh trên cây có khoảng cách đến \(X\) đúng bằng \(K\).
Test 1
5
10 2 0
10 2 1
10 2 2
10 2 3
10 2 4
1
3
4
2
0
Cho trước giá trị \(C\) và \(N\) thao tác bit, thao tác thứ \(i\) có dạng \(T \ A\), trong đó:
Đức có một biến số nguyên \(X\). Ban đầu, Đức gán \(X=C\) và tiến hành \(N\) bước tính toán:
Bạn hãy giúp Đức viết chương trình thực hiện \(N\) bước tính toán trên nhé!
Test 1
3 19
3 10
2 13
1 6
25
31
4
Đất nước Byteland có \(N\) thành phố, \(M\) trạm phát điện, và \(E\) đường dây nối hai chiều. Mỗi đường dây sẽ nối hai thành phố với nhau, hoặc hai trạm phát điện với nhau, hoặc một trạm phát điện với một thành phố. Để dễ hình dung, ta có thể biểu diễn Byteland dưới dạng mô hình đồ thị vô hướng gồm \(N+M\) đỉnh và \(E\) cạnh. Các thành phố tương ứng với các đỉnh \(1\), \(2\),..., \(N\) và các trạm phát điện tương ứng với các đỉnh \(N+1\), \(N+2\),..., \(N+M\). Cạnh thứ \(i\) \((1\le i\le E)\) nối hai đỉnh \(U_i\) và \(V_i\).
Một thành phố được xem là đã hòa lưới điện nếu tồn tại một đường đi từ nó đến một trạm phát điện nào đó. Bạn hãy lập trình xử lý \(Q\) sự kiện giả lập, tại sự kiện \(i\) ta tiến hành phá hủy đường dây (cạnh) thứ \(X_i\) và cho biết số lượng thành phố hòa lưới điện còn lại là bao nhiêu. Lưu ý rằng một khi một đường dây bị phá hủy, nó sẽ không bao giờ được nối lại.
Test 1
5 5 10
2 3
4 10
5 10
6 9
2 9
4 8
1 7
3 6
8 10
1 8
6
3
5
8
10
2
7
4
4
2
2
2
1
Xét bài toán sau: Cho dãy số gồm \(N\) số nguyên dương, hãy cho biết bội số chung nhỏ nhất (LCM) của toàn dãy nếu ta biến đổi một phần tử của nó về giá trị \(1\).
Nhận thấy đề bài chưa đủ khó, Đức quyết định nâng cấp nó lên:
Test 1
4
1
3 2
2
2 2
5 1
1
5 1
2
2 1
3 1
3
Cho \(1\) xâu \(S\) gồm \(n\) ký tự, ta sinh ra \(n\) xâu con của \(S\) là: \(T_1=S_{1..n}\), \(T_2=S_{2..n}\), \(T_3=S_{3..n}\),..., \(T_n=S_{n..n}\).
Sau đó ta sẽ sắp xếp \(n\) xâu \(T\) lại theo thứ tự từ điển tăng dần, \(1\) xâu \(A\) được xem là có thứ tự từ điển nhỏ hơn \(B\) nếu tồn tại \(1\) vị trí \(k\) sao cho \(A_{1..k-1}=B_{1..k-1}\) và \(A_k < B_k\).
Cuối cùng ta sẽ xây dựng mảng \(a_1\), \(a_2\),..., \(a_n\) với \(a_i=x\) nếu xâu \(T_x\) nằm ở vị trí \(i\) sau khi đã được sắp xếp tăng dần. Mảng \(a\) được gọi là Suffix Array của xâu \(S\).
Ví dụ:
bcab
.bcab
cab
ab
b
Yêu cầu:
a
đến z
.a
đến z
, trường hợp không có kết quả thì in ra \(-1\).Test 1
4 2
3 4 1 2
bdab
3 xâu đầu tiên theo thứ tự từ điển có Suffix Array như đã cho là:
bcab
bdab
beab
\(K=2\) nên kết quả sẽ là xâu bdab
.
Nguồn bài: VOS Round 23 - Lê Ðôn Khuê