POJ1321 棋盘问题
来源:互联网 发布:龙与地下城 知乎 编辑:程序博客网 时间:2024/05/16 14:49
棋盘问题
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 22776 Accepted: 11298
Description
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。
Input
输入含有多组测试数据。
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。
Output
对于每一组数据,给出一行输出,输出摆放的方案数目C (数据保证C<2^31)。
Sample Input
2 1#..#4 4...#..#..#..#...-1 -1
Sample Output
21
#include <stdio.h>#include <string.h>#define maxn 10char map[maxn][maxn];int n, m, ans, k;bool check(int x, int y){ int i; for(i = 1; x - i >= 0; ++i) //up if(map[x-i][y] == 'A') return 0; for(i = 1; x + i < n; ++i) //down if(map[x+i][y] == 'A') return 0; for(i = 1; y - i >= 0; ++i) //left if(map[x][y-i] == 'A') return 0; for(i = 1; y + i < n; ++i) //right if(map[x][y+i] == 'A') return 0; return 1;}void DFS(int x, int y){ if(k == m){ ++ans; return; } int i, j; for(i = x, j = y; i < n; ++i, j = 0){ for(; j < n; ++j) if(map[i][j] == '#' && check(i, j)){ ++k; map[i][j] = 'A'; DFS(i, j + 1); --k; map[i][j] = '#'; } }}int main(){ int i; while(scanf("%d%d", &n, &m) != EOF){ if(n == -1 && m == -1) break; for(i = 0; i < n; ++i) scanf("%s", map[i]); ans = k = 0; DFS(0, 0); printf("%d\n", ans); } return 0;}
0 0
- poj1321棋盘问题
- poj1321 棋盘问题
- poj1321(dfs棋盘问题)
- poj1321 - 棋盘问题
- poj1321棋盘问题
- POJ1321--棋盘问题
- POJ1321( 棋盘问题)
- POJ1321:棋盘问题
- poj1321 棋盘问题
- poj1321棋盘问题
- poj1321棋盘问题{wa}
- poj1321 棋盘问题 dfs
- poj1321棋盘问题
- [POJ1321]棋盘问题
- POJ1321 棋盘问题
- poj1321 棋盘问题
- poj1321 棋盘问题(DFS)
- POJ1321----棋盘问题
- Redis在windows下的安装使用
- Java Compilation Process
- 【ThinkPHP学习】ThinkPHP的模块绑定与域名部署
- js混淆加密工具
- IOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别
- POJ1321 棋盘问题
- Co-prime
- hdu Crixalis's Equipment
- jQuery导航菜单防刷新
- 终端和控制台的区别
- java中关于Map的九大问题
- C style字符串
- GCC添加外部LIB的问题
- IOS 系统打电话事件的监听与状态获取