Untitled

 avatar
unknown
plain_text
2 years ago
1.1 kB
3
Indexable
//package paint;

import java.util.Scanner;

public class Solution {
static int N;
static int[][] matrix=new int[100][100];
static int[] bangMau=new int[100];
static int ans=0;
static boolean checkDinh(){
	for(int i=0;i<N;i++){
		for(int j=0;j<N;j++){
			if(matrix[i][j]==1){
				if(bangMau[i]==bangMau[j]){
					return false;
				}
			}
		}
	}
	return true;
}
static boolean checkMau(int k,int color){
	for(int i=0;i<N;i++){
		if(matrix[k][i]==1){
			if(color==bangMau[i]){
				return false;
			}
		}
	}
	return true;	
}
static void backtrack(int k){
	if(k==N){
		
			ans++;
		
		return;
	}
	for(int i=1;i<=4;i++){
		if(checkMau(k, i)){
			bangMau[k]=i;
			backtrack(k+1);
			bangMau[k]=0;
		}
		
	}
}
public static void main(String[] args) {
	Scanner scanner=new Scanner(System.in);
	int tc=scanner.nextInt();
	for(int i=0;i<tc;i++){
		N=scanner.nextInt();
		for(int j=0;j<N;j++){
			for(int k=0;k<N;k++){
				matrix[j][k]=scanner.nextInt();
			}
		}
		ans=0;
		backtrack(0);
		System.out.println("Case #"+(i+1));
		System.out.println(ans);
		
	}
}
}
Editor is loading...