POJ 1321 棋盘问题(DFS)
来源:互联网 发布:淘宝新用户有什么优惠 编辑:程序博客网 时间:2024/04/29 04:21
深搜,构思出解答树,基本不难...好久没写了,一开始写的没过,看着别人的解题报告启发。。。
#include<cstdio>#include<iostream>#include<cstring>using namespace std;int cnt;int main(){ void dfs(char chess[][10],int n,int k,int row,int key,bool flag[]); int n,k,key; char chess[10][10]; bool flag[10]; while(scanf("%d %d",&n,&k) && n != -1 && k != -1) { memset(flag,false,sizeof(flag));//列数的标记数组 cnt = 0,key = 0; for(int i = 0 ; i < n ; i++) { getchar(); for(int j = 0 ; j < n ; j++) { cin>>chess[i][j]; } } dfs(chess,n,k,0,0,flag); cout<<cnt<<endl; } return 0;}void dfs(char chess[][10],int n,int k,int row,int key,bool flag[]){ if(key == k) { cnt++; return; } if(row > n) { return; } for(int j = 0 ; j < n ; j++) { if(chess[row][j] == '#' && !flag[j]) { flag[j] = true; dfs(chess,n,k,row+1,key+1,flag); //下一行中有符合条件的位置,row,key分别+1 继续搜索 flag[j] = false; } } dfs(chess,n,k,row+1,key,flag);//下一行中没有符合要求的位置,只把row+1,key不变}//深搜,构造出解答树,根据解答树的特征来写出深搜
- POJ 1321 棋盘问题(棋盘DFS)
- POJ 1321 棋盘问题(DFS+回溯)
- poj 1321 棋盘问题 (DFS )
- POJ 1321 棋盘问题(DFS)
- poj 1321 棋盘问题(DFS)
- poj 1321 棋盘问题(dfs,回溯)
- poj 1321 棋盘问题(dfs)
- POJ 1321-棋盘问题(DFS)
- Poj 1321 棋盘问题 (DFS水题)
- POJ 题目1321 棋盘问题(DFS)
- POJ 1321 棋盘问题(dfs)
- POJ 1321 棋盘问题(dfs)
- POJ 1321 棋盘问题 (DFS)
- POJ 1321 棋盘问题 (DFS)
- 【POJ】1321 - 棋盘问题(dfs)
- POJ 1321 棋盘问题(dfs)
- POJ 1321 棋盘问题(DFS)
- POJ:1321 棋盘问题(深搜DFS)
- poj 2386 Lake Counting(搜索,种子填充法)
- poj 1915 Knight Moves(BFS遍历)
- hdu 2099 整除的尾数(枚举数论)
- nefu 115 斐波那契的整除(数论)
- hdu 1021 Fibonacci Again(简单数论)
- POJ 1321 棋盘问题(DFS)
- uva 409(字符串模拟)
- poj 2121 Inglish-Number Translator(模拟)
- zoj 1403 Safecracker(枚举)
- java 路径应对转义字符
- poj 1603 Risk(最短路)
- poj 2250 Compromise(LCS,最长公共子序列)
- poj 2965 The Pilots Brothers(搜索)
- poj 1028 Web Navigation(栈模拟)