Untitled
unknown
plain_text
2 years ago
743 B
5
Indexable
#include<iostream>
using namespace std;
int n,ans;
int map[100][100];
int bangmau[100];
bool checkmau(int num, int color)
{
for (int i=0; i<n; i++)
{
if (map[num][i] == 1)
{
if (color == bangmau[i]) return false;
}
}
return true;
}
void backtrack(int num)
{
if (num == n)
{
ans++;
return;
}
for (int i=1; i<=4; i++)
{
if (checkmau(num,i))
{
bangmau[num] = i;
backtrack(num+1);
bangmau[num] = 0;
}
}
}
int main()
{
int t;
cin >> t;
for (int tc=1;tc<=t; tc++)
{
cin >> n;
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
cin >> map[i][j];
ans = 0;
backtrack(0);
cout << "Case #" << tc << endl << ans << endl;
}
}
Editor is loading...