2014 网选 5014 Number Sequence(异或)

简介:
 1 /*
 2     题意:a, b两个序列,规定由[0, n]区间的数!
 3     求 a[i] ^ b[i] 的和最大! 
 4     
 5     思路:如果数字 n的二进制有x位, 那么一定存在一个数字m,使得n^m的所有二进制位
 6     都是1,也就是由x位1!这样下去的到的值就是最大值! 
 7     
 8 */ 
 9 #include<iostream>
10 #include<cstring>
11 #include<cstdio>
12 #include<algorithm>
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 i=0; i<=n; ++i){
27             scanf("%d", &x);
28             pos[x]=i;
29         }
30         memset(vis, 0, sizeof(vis));
31         long long sum=0;
32         for(int i=n; i>=0; --i){
33              y=x=i;
34              if(vis[x]) continue;
35              int tmp=1;
36              while(y){
37                  x^=tmp;
38                  tmp<<=1;
39                  y>>=1;
40             }
41             vis[x]=vis[i]=1;
42             sum+=2*(x^i);
43             b[pos[i]]=x;
44             b[pos[x]]=i;
45         }
46         //printf("%lld\n", sum);
47         cout<<sum<<endl;
48         printf("%d", b[0]);
49         for(int i=1; i<=n; ++i)
50             printf(" %d", b[i]);
51         printf("\n");
52     }
53     return 0;
54 }









本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/3973850.html,如需转载请自行联系原作者
目录
相关文章
|
存储 缓存 关系型数据库
Redo日志 (4)—log sequence number(六十二)
Redo日志 (4)—log sequence number(六十二)
|
Java C++
HDU-1005,Number Sequence(有规律的数学题)
HDU-1005,Number Sequence(有规律的数学题)
|
人工智能 Java
HDU - 2018杭电ACM集训队单人排位赛 - 4 - Problem J. number sequence
HDU - 2018杭电ACM集训队单人排位赛 - 4 - Problem J. number sequence
133 0
HDOJ 1005 Number Sequence
HDOJ 1005 Number Sequence
101 0
|
Java
HDU 1711 Number Sequence(KMP裸题,板子题,有坑点)
Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27028    Accepted Submission...
1021 0
HDU 1005 Number Sequence
Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 115124    Accepted Su...
801 0
|
人工智能 Java BI
KMP - HDU 1711 Number Sequence
Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11606    Accepted Submission...
816 0
|
算法
Leetcode 313. Super Ugly Number
题目翻译成中文是『超级丑数』,啥叫丑数?丑数就是素因子只有2,3,5的数,7 14 21不是丑数,因为他们都有7这个素数。 这里的超级丑数只是对丑数的一个扩展,超级丑数的素因子不再仅限于2 3 5,而是由题目给定一个素数数组。与朴素丑数算法相比,只是将素因子变了而已,解法还是和朴素丑数一致的。
99 1