4 条题解

  • 0
    @ 2022-10-5 10:49:15
    #include <stdio.h>
    int ans[92][8], n, b, i, j, num, hang[8];
    void queen(int i){
    	int j, k;
    	if(i == 8){
    		for(j = 0; j < 8; j++)  ans[num][j] = hang[j] + 1;
    		num++;
    		return;
    	}
    	for (j=0; j<8; j++){
            for(k=0; k<i; k++)
                if( hang[k] == j || (k - i) == (hang[k] - j) || (i - k) == (hang[k] - j )) break;
    		if (k == i) {
    			hang[i] = j;
    			queen(i + 1);
    		}
    	}
    }
    int main( ){
    	num=0;
    	queen(0);
    	scanf("%d", &n);
    	for(i = 0; i < n; i++){
    		scanf("%d", &b);
    		for(j = 0; j < 8; j++)  printf("%d", ans[b - 1][j]);
    		printf("\n");
    	}
    }
    

    信息

    ID
    829
    时间
    1000ms
    内存
    16MiB
    难度
    5
    标签
    递交数
    132
    已通过
    52
    上传者