题解 | #本场比赛灵感来源于树状数组出题组#

墨提斯的排列

https://ac.nowcoder.com/acm/contest/120564/C

题目:墨提斯的排列

思路:

异或运算的性质决定了,两个数的二进制表示中,不同的位数越多,它们的异或值就越大。 因此,要最小化异或值之和,就需要让排列中相邻的两个数在二进制表示下只有一位不同。 满足这一性质的序列,正是格雷码(Gray Code)。

代码:

#include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; for(int i=0;i< 1<<n;i++){ cout<<(i ^ (i>>1))<<" "; } }

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务