格雷码

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

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码。

格雷码的输出方式

void solve()
{
    int n;
    cin >> n;
    int tol = 1 << n;
    for (int i = 0; i < tol; i++)
    {
        cout << (i ^ (i >> 1)) << " ";
    }
    cout << endl;
}

格雷码会使\(\sum_{k = 1}^{2^{n}-1}(p_k\ xor \ p_{k+1})\)最小。

posted on 2026-06-29 10:10  我不爱吃汉堡  阅读(2)  评论(0)    收藏  举报

导航