308615: CF1547D. Co-growing Sequence

Memory Limit:512 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Co-growing Sequence

题意翻译

对于给定的长度为 $n$ 的数组 $a$。求构造一个字典序最小的数组 $b$ 使 $(a_i \ xor\ b_i) and (a_{i + 1}\ xor \ b_{i +1} = 0)$。 其中 $xor$ 表示位运算或, $and$ 表示位运算与。

题目描述

A sequence of non-negative integers $ a_1, a_2, \dots, a_n $ is called growing if for all $ i $ from $ 1 $ to $ n - 1 $ all ones (of binary representation) in $ a_i $ are in the places of ones (of binary representation) in $ a_{i + 1} $ (in other words, $ a_i \:\&\: a_{i + 1} = a_i $ , where $ \& $ denotes [bitwise AND](http://tiny.cc/xpy9uz)). If $ n = 1 $ then the sequence is considered growing as well. For example, the following four sequences are growing: - $ [2, 3, 15, 175] $ — in binary it's $ [10_2, 11_2, 1111_2, 10101111_2] $ ; - $ [5] $ — in binary it's $ [101_2] $ ; - $ [1, 3, 7, 15] $ — in binary it's $ [1_2, 11_2, 111_2, 1111_2] $ ; - $ [0, 0, 0] $ — in binary it's $ [0_2, 0_2, 0_2] $ . The following three sequences are non-growing: - $ [3, 4, 5] $ — in binary it's $ [11_2, 100_2, 101_2] $ ; - $ [5, 4, 3] $ — in binary it's $ [101_2, 100_2, 011_2] $ ; - $ [1, 2, 4, 8] $ — in binary it's $ [0001_2, 0010_2, 0100_2, 1000_2] $ . Consider two sequences of non-negative integers $ x_1, x_2, \dots, x_n $ and $ y_1, y_2, \dots, y_n $ . Let's call this pair of sequences co-growing if the sequence $ x_1 \oplus y_1, x_2 \oplus y_2, \dots, x_n \oplus y_n $ is growing where $ \oplus $ denotes [bitwise XOR](http://tiny.cc/bry9uz). You are given a sequence of integers $ x_1, x_2, \dots, x_n $ . Find the lexicographically minimal sequence $ y_1, y_2, \dots, y_n $ such that sequences $ x_i $ and $ y_i $ are co-growing. The sequence $ a_1, a_2, \dots, a_n $ is lexicographically smaller than the sequence $ b_1, b_2, \dots, b_n $ if there exists $ 1 \le k \le n $ such that $ a_i = b_i $ for any $ 1 \le i < k $ but $ a_k < b_k $ .

输入输出格式

输入格式


The first line contains an integer $ t $ ( $ 1 \le t \le 10^4 $ ). Then $ t $ test cases follow. The first line of each test case contains an integer $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ) — length of the sequence $ x_i $ . The second line contains $ n $ integers $ x_1, x_2, \dots, x_n $ ( $ 0 \le x_i < 2^{30} $ ) — elements of the sequence $ x_i $ . It is guaranteed that the sum of $ n $ overall all test cases doesn't exceed $ 2 \cdot 10^5 $ .

输出格式


For each test case, print $ n $ integers $ y_1, y_2, \dots, y_n $ ( $ 0 \le y_i < 2^{30} $ ) — lexicographically minimal sequence such that such that it's co-growing with given sequence $ x_i $ .

输入输出样例

输入样例 #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

Input

题意翻译

对于给定的长度为 $n$ 的数组 $a$。求构造一个字典序最小的数组 $b$ 使 $(a_i \ xor\ b_i) and (a_{i + 1}\ xor \ b_{i +1} = 0)$。 其中 $xor$ 表示位运算或, $and$ 表示位运算与。

加入题单

上一题 下一题 算法标签: