#include#include #include #define NUM 110using namespace std;int n; ///图的顶点数int m; ///可用的颜色数量int c[NUM][NUM]; ///图的邻接矩阵int x[NUM]; ///当前的解向量int sum; ///总方案数目int match;bool Same(int t){ int i; for(i=1; i<=n; i++) if(c[t][i]==1&&x[i]==x[t]) return false; return true;}///形参t是回溯的深度,从1开始void BackTrack(int t){ int i; if(t>n) { sum++; for(i=1; i<=n; i++) printf("%d ",x[i]); printf("\n"); } else { ///搜索当前扩展节点的m个孩子 for(i=1; i<=m; i++) { x[t] = i; if(Same(t)) BackTrack(t+1); x[t] = 0; } }}int main(){ m=4; int Cases; scanf("%d",&Cases); while(Cases--) { sum=0; for(int i=0;i