首页 > 其他 > 详细

hdu 5244 inverse(分治)

时间:2017-04-29 22:06:02      阅读:415      评论:0      收藏:0      [点我收藏+]

inverse

Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 193    Accepted Submission(s): 97


Problem Description
Mike has got a huge array b, and he is told that the array is encrypted.

The array is encrypted as follows.

Let ai(0≤i<n) be the i-th number of this original array.

Let bi(0≤i<n) be the i-th number of this encrypted array.

Let n be a power of 2, which means n=2k.

The bi is calculated as following.

bi=∑0≤j<nf((i or j) xor i)aj


f(x) means, if the number of 1 in the binary of x is even, it will return 1, otherwise 0.

Mike want to inverse the procedure of encryption.

Please help him recover the array a with the array b.
 

 

Input
The first line contains an integer T(T≤5), denoting the number of the test cases.

For each test case, the first line contains an integer k(0≤k≤20),
The next line contains n=2k integers, which are bi respectively.

It is guaranteed that, ai is an integer and 0≤ai≤109.
 

 

Output
For each test case, output ‘‘Case #t:‘‘ to represent this is the t-th case. And then output the array a.
 

 

Sample Input
2 0 233 2 5 3 4 10
 

 

Sample Output
Case #1: 233 Case #2: 1 2 3 4
 

 

Source
 

 

Recommend
 
 

hdu 5244 inverse(分治)

原文:http://www.cnblogs.com/bofengyu/p/6786305.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!