#P6097. 【模板】子集卷积

【模板】子集卷积

题目背景

这是一道模板题。

题目描述

给定两个长度为 2n2^n 的序列 a0,a1,,a2n1a_0,a_1,\cdots,a_{2^n-1}b0,b1,,b2n1b_0,b_1,\cdots,b_{2^n-1},你需要求出一个序列 c0,c1,,c2n1c_0,c_1,\cdots,c_{2^n-1},其中 ckc_k 满足:

$$c_k=\sum_{\substack{{i \& j=0}\\{i~\mid~ j=k}}} a_i b_j $$

其中  ~\mid~表示按位或,&\&表示按位与。

答案对 109+910^9+9 取模。

输入格式

第一行输入一个正整数 nn ,表示集合的大小。

第二行有 2n2^n 个整数,描述了 aa

第三行有 2n2^n 个整数,描述了 bb

输出格式

输出一行 2n2^n 个整数,表示 cc

2
1 0 2 1
2 0 2 1
2 0 6 3

提示

对于所有数据,1n201\le n\le 200ai,bi<109+90\le a_i,b_i< 10^9+9