牛客10:H.War of Inazuma (Easy Version)

题面:有一个n维超平面,有2^n个点,相邻定义为二进制仅有一位不同,要求每个点相邻不超过图片说明
解析:先考虑n=1,此时若为01,则无相邻点;n=2,为0110,也是无相邻点。发现n维空间的构造,是n-1维空间和它各位的取反,这样每一个点都没有相邻点。(两阵营点一样多)
代码

#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
    vector<int> v;
    cin>>n;
    v.push_back(0);
    for(int i=0;i<=n;i++)
    for(int j=0;j<(1<<i);j++){
        v.push_back(v[j]^1);
    }
    for(int i=0;i<(1<<n);i++)
    cout<<v[i];
}
全部评论

相关推荐

投递腾讯等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务