hdu5014Number Sequence 位运算
来源:互联网 发布:贵州行知科技职业学校 编辑:程序博客网 时间:2024/06/03 20:07
//给出长度为n+1的序列 a 其中0<=ai<=n且ai != aj (i != j)//找出满足同样条件的序列b使得//t = (a[0]^b[0]) + (a[1]^b[1]) + ... + (a[n]^b[n]) 最大//由于a和b的序列的长度都是确定的//从n到0的数//每个数i找一个从其最高位开始按位非的数j//由于对应位置最高位为0,所以j<=i//对于每一个数i其对应的j各不相同 , 所以b能满足条件#include<cstdio>#include<cstring>#include<iostream>using namespace std ;const int maxn = 1e5+10 ;int a[maxn] ;int vis[maxn] ;typedef long long ll ;int get(int n){ int pos = 0 ; int sum = 0 ; while(n) { if(n%2 == 0)sum += (1<<pos) ; n/=2 ; pos++ ; } return sum ;}int main(){ //freopen("in.txt" ,"r" , stdin) ; int n ; while(~scanf("%d" , &n)) { memset(vis , 0 , sizeof(vis)) ; for(int i = n ;i >= 0;i--) { if(vis[i])continue ; int t = get(i) ; vis[t] = i ; vis[i] = t ; } int tmp; cout<<((ll)n*(n+1))<<endl; int ans = 0 ; for(int i = 0;i <= n;i++) { scanf("%d" , &tmp) ; printf("%d%c" , vis[tmp] , i == n ?'\n':' ') ; } } return 0 ;}
0 0
- hdu5014Number Sequence 位运算
- HDU5014Number Sequence(贪心)
- hdu 5014 Number Sequence 位运算+规律
- HDU5015~Number Sequence(位运算)
- HDU5014 Number Sequence(二进制,位运算)
- HDU - 5014 Number Sequence(贪心+位运算)
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- CentOS网络设置
- 【codevs1166】【noip07TG】矩阵取数游戏,新的开始
- 使用PullToRefresh实现下拉刷新和上拉加载
- 博客已搬家
- ASP.Net AJAX按钮 与普通的按钮的区别
- hdu5014Number Sequence 位运算
- 二维数组动态分布空间
- Deep Learning(深度学习)学习笔记整理系列之(八)
- hdu3480 Division
- 数据持久化
- Linux初学笔记
- ios-音乐播放器(2)工具类的封装
- 关于Linux文件cache
- GPU编程中的常用数学函数