Exemplo n.º 1
0
 int totalNQueens(int n) {
     int res = 0;
     if (n == 0 || n == 1) return n;
     vector<int> instance;
     totalNQueens(instance, 0, n, res);
     return res;
 }
Exemplo n.º 2
0
int main(int argc, char *argv[])
{
	int nq = 0;
	int ret = totalNQueens(atoi(argv[1]));
#if 1
		printf("(%d)\n", ret);	
#endif
	return 0;
}
Exemplo n.º 3
0
int main(int argc, char **argv)
{
    if (argc != 2) {
        printf("Usage: ./queen 8\n");
        exit(-1);
    }

    int n = atoi(argv[1]);
    printf("Total %d solution for %d queens.\n", totalNQueens(n), n);
    return 0;
}
Exemplo n.º 4
0
 void totalNQueens(vector<int>& instance, int s_index, int t_index, int& count) {
     if (instance.size() == t_index) {
         ++count;
         return;
     }
     for(int i = 0; i < t_index; ++i) {
         if (placeable(instance, instance.size(), i)) {
             instance.push_back(i);
             totalNQueens(instance, s_index, t_index, count);
             instance.pop_back();
         }
     }
 }
Exemplo n.º 5
0
int main() {
	int n, cases = 0;
	char s[32] = {};
	while (scanf("%d", &n) == 1 && n) {
		for (int i = 0; i < n; i++) {
			scanf("%s", s);
			y_valid[i] = (1<<n)-1;
			for (int j = 0; j < n; j++) {
				if (s[j] == '*')
					y_valid[i] ^= (1<<j);
			}
		}
		printf("Case %d: %d\n", ++cases, totalNQueens(n));
	}
	return 0;
}
Exemplo n.º 6
0
void testTotalQueens(){
    printf("%d\n",totalNQueens(8));
}