POJ - 1321 A - 棋盘问题】的更多相关文章

A - 棋盘问题 http://poj.org/problem?id=1321 思路:不能搞双重循环嵌套,要注意可以跳过某行 代码 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; int n, k, res, cnt; char a[10][10]; bool vis[10]; void dfs (int x) { if (res == 0) { cnt ++;…
棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 21666   Accepted: 10765 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有差别.要求摆放时随意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的全部可行的摆放方案C. Input 输入含有多组測试数据.  每组数据的第一行是两个正整数,n k.用一个空格隔开,表…
棋盘问题 Descriptions: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. Input 输入含有多组测试数据. 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目. n <= 8 , k <= n 当为-1 -1时表示输入结束. 随后的n行描述了棋盘的形状:每行有n个字符,…
POJ 1321 题目大意:给定一棋盘,在其棋盘区域放置棋子,需保证每行每列都只有一颗棋子. (注意 .不可放 #可放) 解题思路:利用DFS,从第一行开始依次往下遍历,列是否已经放置棋子用一个数组标记,直至放完要求的棋子数. /*POJ 1321 棋盘问题 --- DFS*/ #include <cstdio> #include <cstring> int n, k, cnt; ]; //标记列的访问状态 ][]; /*从第r行开始正确放置p个棋子*/ void dfs(int…
题目传送门 /* DFS:因为一行或一列都只放一个,可以枚举从哪一行开始放,DFS放棋子,同一列只能有一个 */ #include <cstdio> #include <algorithm> #include <cstring> using namespace std; ][]; ]; int n, k, ans; void DFS(int x, int num) { ; i<=n; ++i) { if (maze[x][i] == '#' &&…
Emmm,我又来 POJ 了,这题感觉比上次做的简单点.类似皇后问题.但是稍微做了一点变形,比如棋子数量是不定的.棋盘形状不在是方形等等. 题目链接:POJ 1321 棋盘问题 解题思路 基本思路:从上往下放旗子,每种情况完成后,复盘继续下一种情况. 这里讲一下,void backTrack(int left, int x) 函数. left 表示还剩的棋子数量,显然如果 left 为 0,说明所有棋子已放完,那么方案数 solution 加 1. 如果不为 0.那么继续检查当前位置的列是否有棋…
POJ 1321 棋盘问题 题意:中文题不解释. 思路:经典DP,比较取巧的想法是一行行(按照题目意思一行最多只能放一个)来看,标记一列列.注意考虑到有些行可能不放的情况. /** Sample Input 2 1 #. .# 4 4 ...# ..#. .#.. #... -1 -1 Sample Output 2 1 **/ #include<cstdio> #include<cstring> using namespace std; const int INF = 0x3f3…
1.POJ 1321  棋盘问题 2.总结: 题意:给定棋盘上放k个棋子,要求同行同列都不重. #include<iostream> #include<cstring> #include<cmath> #include<queue> #include<algorithm> #include<cstdio> #define max(a,b) a>b?a:b #define F(i,a,b) for (int i=a;i<=b…
1.链接地址: http://bailian.openjudge.cn/practice/1321 http://poj.org/problem?id=1321 2.题目: 棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20403   Accepted: 10138 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同…
棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 44012   Accepted: 21375 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. Input 输入含有多组测试数据.每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了…