Lớn nhất tập con

Xem dưới dạng PDF

Gửi bài giải


Điểm: 100
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Tý có một công ty có \(N = 2^K\) nhân viên, mỗi nhân viên có mã số từ 0 đến \(N-1\) và năng suất \(A[i]\). Giám đốc muốn chọn ra một nhóm làm việc. Một nhân viên mã \(x\) có thể dẫn dắt nhân viên \(y\) nếu \(x\) là tiền thân của \(y\) (\(x \subseteq y\)).

Với mỗi nhân viên \(mask\), hãy tìm năng suất lớn nhất trong số các nhân viên mà \(mask\) có thể dẫn dắt (kể cả chính \(mask\)). Nói cách khác, tính \(G[mask] = \max_{x \subseteq mask} A[x]\).

Đầu vào:

  • Dòng 1: \(N, K\) (\(N = 2^K\), \(K \le 20\))
  • Dòng 2: \(N\) số nguyên \(A[0..N-1]\) (\(0 \le A[i] \le 10^9\))

Đầu ra:

  • \(N\) số nguyên \(G[mask]\) với mọi \(mask = 0..N-1\).

Định dạng đầu vào

  • Dòng đầu chứa số nguyên \(N\) và \(Q\) (\(N, Q \le 10^5\)).
  • \(N-1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) mô tả một cạnh.

Định dạng đầu ra

  • In ra kết quả của từng truy vấn trên một dòng.

Ví dụ

Input:

5 3
1 2
1 3
2 4
2 5
2 3

Output:

3
Ràng buộc
Subtask Điểm Giới hạn
1 20 \(N \le 10^3\)
2 30 \(N \le 10^4\)
3 50 \(N \le 10^5\)

Nhận xét

Không có ý kiến tại thời điểm này.