Tổng 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

Trong khu bảo tồn có \(N = 2^K\) loài sinh vật, mỗi loài được đánh mã số từ 0 đến \(N-1\). Người ta phát hiện ra rằng loài mã số \(x\) là "tiền thân" của loài mã số \(y\) nếu mọi đặc điểm di truyền của \(x\) đều có trong y (viết là \(x \subseteq y\)).

Với mỗi loài \(mask\), hãy tính tổng số lượng cá thể của tất cả các loài tiền thân của nó. Nói cách khác, tính \(G[mask] = \sum_{x \subseteq mask} A[x]\).

Đầu vào:

  • Dòng 1: hai số nguyên \(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:

  • Một dòng gồm \(N\) số nguyên là \(G[mask]\) cho mọi \(mask = 0..N-1\).

Ví dụ: \(N=4, K=2, A=[1,2,3,4]\) → \(G[0]=1, G[1]=1+2=3, G[2]=1+3=4, G[3]=1+2+3+4=10\).

#

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

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

Định dạng đầu ra

  • \(2^K\) số nguyên trên một dòng, số thứ i là \(\sum_{j \subseteq i} A[j]\).

Ví dụ

Input:

2
1 2 3 4

Output:

1 3 4 10

Giải thích: Với mask 0: 1; mask 1: 1+2=3; mask 2: 1+3=4; mask 3: 1+2+3+4=10.

Ràng buộc & Subtasks

Subtask Điểm Ràng buộc
1 30% \(K \le 10\)
2 70% \(K \le 20\)

Nhận xét

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