John is a manager of a CPU chip factory, the factory produces lots of chips everyday. To manage large amounts of products, every processor has a serial number. More specifically, the factory produces n chips today, the i-th chip produced this day has a serial number si .
At the end of the day, he packages all the chips produced this day, and send it to wholesalers. More specially, he writes a checksum number on the package, this checksum is defined as below:
which i, j, k are three different integers between 1 and n. And ⊕ is symbol of bitwise XOR.
Can you help John calculate the checksum number of today?
Input
The first line of input contains an integer T indicating the total number of test cases.
The first line of each test case is an integer n, indicating the number of chips produced today. The next line has n integers s1, s2, . . . , sn, separated with single space, indicating serial number of each chip.
• 1 ≤ T ≤ 1000
• 3 ≤ n ≤ 1000
• 0 ≤ si ≤ 109
• There are at most 10 testcases with n > 100
Output
For each test case, please output an integer indicating the checksum number in a line.
Sample Input
2
3
1 2 3
3
100 200 300
Sample Output
6
400
这道题没啥好说的,训练赛的时候脑子抽抽了觉的以下代码会T掉,就想别的招去了,WA到怀疑人生QWQ
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <ctime> 5 #include <climits> 6 #include <string> 7 #include <cstring> 8 using namespace std; 9 typedef long long ll; 10 11 12 int main() 13 { 14 ios::sync_with_stdio(false); 15 int T, n; 16 ll a[1010]; 17 ll maxn; 18 cin>>T; 19 while( T-- ) 20 { 21 22 maxn = 0; 23 cin>>n; 24 for(int i=0; i<n; i++ ) 25 { 26 cin>>a[i]; 27 } 28 29 for(int i=0; i<n; i++ ) 30 { 31 for(int j=i+1; j<n; j++ ) 32 { 33 for(int k=0; k<n; k++ ) 34 { 35 if( i!=j && i!=k && j!=k ) 36 { 37 if( ((a[i]+a[j])^a[k]) > maxn ) 38 maxn = (a[i]+a[j])^a[k]; 39 } 40 } 41 } 42 } 43 cout<<maxn<<endl; 44 } 45 return 0; 46 }
再快一点的:
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <ctime> 5 #include <climits> 6 #include <string> 7 #include <cstring> 8 using namespace std; 9 typedef long long ll; 10 11 12 int main() 13 { 14 ios::sync_with_stdio(false); 15 int T, n; 16 ll a[1010]; 17 ll maxn; 18 cin>>T; 19 while( T-- ) 20 { 21 22 maxn = 0; 23 cin>>n; 24 for(int i=0; i<n; i++ ) 25 { 26 cin>>a[i]; 27 } 28 29 for(int i=0; i<n; i++ ) 30 { 31 for(int j=i+1; j<n; j++ ) 32 { 33 for(int k=j + 1; k<n; k++ ) 34 { 35 maxn = max((a[i]+a[j])^a[k], maxn); 36 maxn = max((a[i]+a[k])^a[j], maxn); 37 maxn = max((a[j]+a[k])^a[i], maxn); 38 } 39 } 40 } 41 cout<<maxn<<endl; 42 } 43 return 0; 44 }