[kuangbin带你飞]专题一简单搜索A

1119 ワード

A-碁盤問題[POJ-1321]
一形の碁盤(形状が不規則である可能性がある)上に駒を並べても、駒に違いはない.並べ替えを要求する場合、任意の2つの駒を碁盤の中の同じ行または同じ列に置くことはできない.所定の形状と大きさの碁盤に対して、k個の駒を並べたすべての実行可能な並べ替えスキームCをプログラミングして解いてください.Inputは複数のテストデータを含むことを入力します.各グループのデータの最初の行は2つの正の整数です,n kは,1つのスペースで区切られ,1つのn*nのマトリクス内に碁盤を記述し,駒を置く数を示す.n<=8,k<=nは−1−1で入力終了を示す.次のn行は、各行にn文字を有する碁盤の形状を示す.空白領域(データ保証余分な空白行または空白列が発生しないこと)を表す.Outputは、データのセットごとに、1行の出力を与え、配置されたシナリオ数C(データ保証C<2^31)を出力する.
Sample Input
2 1
#.
.#
4 4
...#
..#.
.#..
#...
-1 -1
Sample Output
2
1

最初はテーマをよく読んでいなかったので、#は入れられないと思って、まだ長い間カードをかけました...
#include
using namespace std;
char map[10][10];
int visited[10];
int count =0 ;
int n,k;
void dfs(int clumn,int num){
    if(num==0){
        count++;
        return ;
    }
    for(int j=0;j=num) 
        dfs(clumn+1,num);
    return ;
}
int main(){
    while(cin>>n>>k&&n!=-1||k!=-1){
        count = 0;
        for(int i = 0 ;i>map[i][j];
            }
        }
        dfs(0,k);
        cout<