CF1547D.Co-growing Sequence

普及-

通过率:0%

时间限制:2.00s

内存限制:512MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

A sequence of non-negative integers a1,a2,…,ana_1, a_2, \dots, a_n is called growing if for all ii from 11 to n−1n - 1 all ones (of binary representation) in aia_i are in the places of ones (of binary representation) in ai+1a_{i + 1} (in other words, ai & ai+1=aia_i \:\&\: a_{i + 1} = a_i, where &\& denotes bitwise AND). If n=1n = 1 then the sequence is considered growing as well.

For example, the following four sequences are growing:

  • [2,3,15,175][2, 3, 15, 175] — in binary it's [102,112,11112,101011112][10_2, 11_2, 1111_2, 10101111_2];
  • [5][5] — in binary it's [1012][101_2];
  • [1,3,7,15][1, 3, 7, 15] — in binary it's [12,112,1112,11112][1_2, 11_2, 111_2, 1111_2];
  • [0,0,0][0, 0, 0] — in binary it's [02,02,02][0_2, 0_2, 0_2].

The following three sequences are non-growing:

  • [3,4,5][3, 4, 5] — in binary it's [112,1002,1012][11_2, 100_2, 101_2];
  • [5,4,3][5, 4, 3] — in binary it's [1012,1002,0112][101_2, 100_2, 011_2];
  • [1,2,4,8][1, 2, 4, 8] — in binary it's [00012,00102,01002,10002][0001_2, 0010_2, 0100_2, 1000_2].

Consider two sequences of non-negative integers x1,x2,…,xnx_1, x_2, \dots, x_n and y1,y2,…,yny_1, y_2, \dots, y_n. Let's call this pair of sequences co-growing if the sequence x1⊕y1,x2⊕y2,…,xn⊕ynx_1 \oplus y_1, x_2 \oplus y_2, \dots, x_n \oplus y_n is growing where ⊕\oplus denotes bitwise XOR.

You are given a sequence of integers x1,x2,…,xnx_1, x_2, \dots, x_n. Find the lexicographically minimal sequence y1,y2,…,yny_1, y_2, \dots, y_n such that sequences xix_i and yiy_i are co-growing.

The sequence a1,a2,…,ana_1, a_2, \dots, a_n is lexicographically smaller than the sequence b1,b2,…,bnb_1, b_2, \dots, b_n if there exists 1≤k≤n1 \le k \le n such that ai=bia_i = b_i for any 1≤i<k1 \le i \lt k but ak<bka_k \lt b_k.

一个非负整数序列 a1,a2,…,ana_1, a_2, \dots, a_n 称为增长的(growing),如果对所有 ii(1≤i≤n−11 \le i \le n - 1),aia_i 的二进制表示中所有为 1 的位,在 ai+1a_{i+1} 的二进制表示中对应位也均为 1(换言之,ai & ai+1=aia_i \:\&\: a_{i + 1} = a_i,其中 &\& 表示按位与(bitwise AND))。若 n=1n = 1,则该序列也被视为增长的。

例如,以下四个序列是增长的:

  • [2,3,15,175][2, 3, 15, 175] — 其二进制表示为 [102,112,11112,101011112][10_2, 11_2, 1111_2, 10101111_2];
  • [5][5] — 其二进制表示为 [1012][101_2];
  • [1,3,7,15][1, 3, 7, 15] — 其二进制表示为 [12,112,1112,11112][1_2, 11_2, 111_2, 1111_2];
  • [0,0,0][0, 0, 0] — 其二进制表示为 [02,02,02][0_2, 0_2, 0_2]。

以下三个序列不是增长的:

  • [3,4,5][3, 4, 5] — 其二进制表示为 [112,1002,1012][11_2, 100_2, 101_2];
  • [5,4,3][5, 4, 3] — 其二进制表示为 [1012,1002,0112][101_2, 100_2, 011_2];
  • [1,2,4,8][1, 2, 4, 8] — 其二进制表示为 [00012,00102,01002,10002][0001_2, 0010_2, 0100_2, 1000_2]。

考虑两个非负整数序列 x1,x2,…,xnx_1, x_2, \dots, x_n 和 y1,y2,…,yny_1, y_2, \dots, y_n。若序列 x1⊕y1,x2⊕y2,…,xn⊕ynx_1 \oplus y_1, x_2 \oplus y_2, \dots, x_n \oplus y_n 是增长的(其中 ⊕\oplus 表示按位异或(bitwise XOR)),则称这一对序列为共增长的(co-growing)。

给定一个整数序列 x1,x2,…,xnx_1, x_2, \dots, x_n,请找出字典序最小的序列 y1,y2,…,yny_1, y_2, \dots, y_n,使得序列 xix_i 与 yiy_i 是共增长的。

序列 a1,a2,…,ana_1, a_2, \dots, a_n 字典序小于序列 b1,b2,…,bnb_1, b_2, \dots, b_n,当且仅当存在某个 kk(1≤k≤n1 \le k \le n),使得对所有 1≤i<k1 \le i < k 均有 ai=bia_i = b_i,但 ak<bka_k < b_k。

输入格式

The first line contains an integer tt (1≤t≤1041 \le t \le 10^4). Then tt test cases follow.

The first line of each test case contains an integer nn (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5) — length of the sequence xix_i.

The second line contains nn integers x1,x2,…,xnx_1, x_2, \dots, x_n (0≤xi<2300 \le x_i \lt 2^{30}) — elements of the sequence xix_i.

It is guaranteed that the sum of nn overall all test cases doesn't exceed 2⋅1052 \cdot 10^5.

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)。随后是 tt 个测试用例。

每个测试用例的第一行包含一个整数 nn(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5)——序列 xix_i 的长度。

第二行包含 nn 个整数 x1,x2,…,xnx_1, x_2, \dots, x_n(0≤xi<2300 \le x_i \lt 2^{30})——序列 xix_i 的元素。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

For each test case, print nn integers y1,y2,…,yny_1, y_2, \dots, y_n (0≤yi<2300 \le y_i \lt 2^{30}) — lexicographically minimal sequence such that such that it's co-growing with given sequence xix_i.

对于每个测试用例,输出 nn 个整数 y1,y2,…,yny_1, y_2, \dots, y_n(其中 0≤yi<2300 \le y_i \lt 2^{30}),使得该序列是与给定序列 xix_i 共增(co-growing)的字典序最小序列。

输入输出样例

  • 输入#1

    5
    4
    1 3 7 15
    4
    1 2 4 8
    5
    1 2 3 4 5
    4
    11 13 15 1
    1
    0

    输出#1

    0 0 0 0 
    0 1 3 7 
    0 1 0 3 2 
    0 2 0 14 
    0

输入解题思路,AI测评打分。不知道怎么写?

首页