n维超立方体
题目代码
题目
题目:n维超立方体是在n维空间中对三维空间立方体的类比,下图便是一个4维超立方体在三维空间中的投影及该立方体在三维空间的展开图
给超立方体的各顶点编号后,就可以按照一定规则写出其邻接矩阵。请同学们根据下图寻找规律,对于给定的顶点编号序列,写出对应的超立方体的邻接矩阵。
输入:
维数n,顶点的编号序列a(0<=n<=7)
输出:
对应的超立方体的邻接矩阵(顶点顺序需与a一致)
测试输入
期待的输出
时间限制
内存限制
额外进程
测试用例 1以文本方式显示
2↵0 1 2 3↵
以文本方式显示
0 1 1 0↵1 0 0 1↵1 0 0 1↵0 1 1 0↵
1秒64M0
代码
#include<stdio.h>
#include<math.h>
#include<string.h>
#define reversebit(x,y) x^=(1<<y)
int n
;
int num
;
int a
[10000];
int ex
[10000];
int k
;
int main()
{
int i
,j
;
scanf("%d",&n
);
num
=pow(2,n
);
for(i
=0;i
<num
;i
++)
{
scanf("%d",&a
[i
]);
}
for(i
=0;i
<num
;i
++)
{
memset(ex
, 0, sizeof(ex
));
k
=a
[i
];
for(j
=0;j
<n
;j
++)
{
int f
=k
;
ex
[reversebit(f
,j
)]=1;
}
printf("%d",ex
[a
[0]]);
for(j
=1;j
<num
;j
++)
{
printf(" %d",ex
[a
[j
]]);
}
printf("\n");
}
}