#G0042. 进制拆分【2025测试赛T1】

进制拆分【2025测试赛T1】

题目描述

对于任意一个非负整数 nn,都可以表示成二进制。

例如 55 可以表示为 (101)2(101)_2,即 22+0+20=4+1=52^2 + 0 + 2 ^ 0 = 4 + 1 = 5

现在你需要把 nn 拆成 3232 位二进制,但是每一位的取值可以是 1,0,1-1,0,1。同时,还需要保证任意相邻的两位不能同时为 00

形式化来说,你需要构造 3232 个数字 a31,a30,...,a0a_{31},a_{30},...,a_0 满足下列所有条件:

11i=031ai2i=n\sum_{i = 0} ^{31} a_i2^i = n, 其中 ai{1,0,1}a_i \in \{-1,0,1\}

22ai2+ai+12>0a_i^2 + a_{i+1}^2 > 0,其中 0i<310 \leq i < 31

输入格式

每个测试文件包含多组测试数据。第一行包含测试数据的组数 TT。每组测试数据的格式如下。

每组数据仅包含一行一个非负整数 nn

输出格式

对于每组数据,若答案存在,你需要先输出 YES,然后接下来的 44 行每行 88 个数字 aia_i,表示答案。你需要从低位到高位输出。 否则只输出 NO。如果有多种构造方案,输出任意一种即可。

3
0
3
5
NO
YES
1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 1
YES
-1 1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 1

数据规模与约定

由于具有明显提示性,本题没有大样例。

子任务编号 n<n< 特殊性质 分值
1 232^3 1010
2 2102^{10} 2020
3 2302^{30} nn 为 奇数
4 nn 为 偶数
5 3030

对于 100%100\% 的数据:保证 1T104,0n<2301 \leq T \leq 10^4,0 \leq n < 2^{30}