阿里云服务器架设网站,威联通做网站,北京建筑英才网最新招聘信息,商标网商标注册查询1 /*2 题意#xff1a;a, b两个序列#xff0c;规定由[0, n]区间的数#xff01;3 求 a[i] ^ b[i] 的和最大#xff01; 4 5 思路#xff1a;如果数字 n的二进制有x位#xff0c; 那么一定存在一个数字m#xff0c;使得n^m的所有二进制位6 都是1a, b两个序列规定由[0, n]区间的数3 求 a[i] ^ b[i] 的和最大 4 5 思路如果数字 n的二进制有x位 那么一定存在一个数字m使得n^m的所有二进制位6 都是1也就是由x位1这样下去的到的值就是最大值 7 8 */ 9 #includeiostream
10 #includecstring
11 #includecstdio
12 #includealgorithm
13 #define N 100005
14 using namespace std;
15
16 int b[N], vis[N];
17
18
19 int pos[N];
20
21
22 int main(){
23 int n;
24 while(scanf(%d, n)!EOF){
25 int x, y;
26 for(int i0; in; i){
27 scanf(%d, x);
28 pos[x]i;
29 }
30 memset(vis, 0, sizeof(vis));
31 long long sum0;
32 for(int in; i0; --i){
33 yxi;
34 if(vis[x]) continue;
35 int tmp1;
36 while(y){
37 x^tmp;
38 tmp1;
39 y1;
40 }
41 vis[x]vis[i]1;
42 sum2*(x^i);
43 b[pos[i]]x;
44 b[pos[x]]i;
45 }
46 //printf(%lld\n, sum);
47 coutsumendl;
48 printf(%d, b[0]);
49 for(int i1; in; i)
50 printf( %d, b[i]);
51 printf(\n);
52 }
53 return 0;
54 } 转载于:https://www.cnblogs.com/hujunzheng/p/3973850.html