Untitled
unknown
plain_text
2 years ago
1.1 kB
5
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...