#CF1967C. 树状数组逆变换
树状数组逆变换
树状数组逆变换
- 时间限制:3 秒
- 内存限制:256 MiB
题目描述
定义 为 的二进制最低位所代表的数,例如 。
对长度为 的数组 ,定义变换 :
$$f(a)_i=\left(\sum_{j=i-\operatorname{lowbit}(i)+1}^{i}a_j\right)\bmod 998244353.$$记 为连续执行 次变换 。给定数组 和正整数 ,请构造数组 ,使得 ,并满足 。
可以证明答案一定存在。
输入格式
第一行包含一个整数 ,表示测试用例数。
每个测试用例第一行包含两个整数 。第二行包含 个整数 。
输出格式
对每个测试用例输出一行 个整数 ,表示任意一个合法答案。
样例输入 1
2
8 1
1 2 1 4 1 2 1 8
6 2
1 4 3 17 5 16
样例输出 1
1 1 1 1 1 1 1 1
1 2 3 4 5 6
数据范围
- ;
- ,;
- ;
- 所有测试用例的 之和不超过 。
本题采用独立测试点计分。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | ,,且单个输入文件中 |
| 2 | 40 | ,且单个输入文件中 |
| 3 | 无特殊限制 |