Untitled
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...