POJ - 1321简单搜索DFS

原创 2018年04月15日 09:50:32

   

简单的搜索问题,类似于八皇后问题,只需要递归DFS求可能的数目,然后回溯即可。

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int n,k,cnt,tot;
char a[1000][1000];
int vis[1000];
void dfs(int cur){//行
  if (cnt == k){tot++;return;};//满足条件
  if (cur == n+1)return;//到达边界
  for(int i=1;i<=n;i++){ //遍历在cur(行)情况下的每一列情况
    if (a[cur][i]=='#' && !vis[i]){ //如果这一列有#并且这一列没有其他棋子
        cnt++;  
        vis[i]=1;  
        dfs(cur+1);//如果有可以放置的位置继续往下递归
        cnt--;//递归结束后这种情况已经讨论了,便跳过这种情况假设这种情况我们不放棋子
        vis[i]=0;
    }
  }
  dfs(cur+1); //如果没有找到继续向下一行找
}
int main(){
  while (~scanf("%d%d",&n,&k)){
    tot=0;
    cnt=0;
    memset(vis,0,sizeof(vis));
    if (n==-1 && k==-1)break;
    for (int i=1;i<=n;i++){
        for (int j=1;j<=n;j++){
           cin>>a[i][j];
        }
    }
    dfs(1);
    printf("%d\n",tot);

  }
  return 0;
}



足球战术之Builder篇

接上回:http://www.csdn.net/Develop/read_article.asp?id=11801使用builder模式,来多点进攻,可以避免abstract factory的进球方式...
  • xxcc
  • xxcc
  • 2002-01-13 14:30:00
  • 852

DFS深度优先搜索(2)--poj1321(棋盘问题 经典DFS)

棋盘问题  Time Limit:1000MS    Memory Limit:10000KB    64bit IO Format:%lld & %llu Description...
  • Acmer_Sly
  • Acmer_Sly
  • 2016-09-10 14:17:41
  • 1889

POJ1321-Chess Problem

大致题意: 中文题。。我没什么好说的   解题思路: DFS,没想法就很难很难,有想法就很容易的题 棋盘规则与否不是难点,无论规则不规则都可以用标记去解决 难点在于 棋盘的行数(列数)n ...
  • lyy289065406
  • lyy289065406
  • 2011-07-31 01:23:26
  • 7544

poj-1321 棋盘问题 DFS

汉语题,不解释题意,该题关键是要找到一个枚举的方法,刚开始搜索的思路不是很好找。我也是参考了其他网友的思路,写了这个代码,不是很好解释,直接看把。 #include #include #incl...
  • chAngE_AC
  • chAngE_AC
  • 2015-08-18 16:53:18
  • 251

POJ 1321 棋盘问题(深搜 \ 回溯)

棋盘问题 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Description ...
  • xia842655187
  • xia842655187
  • 2016-04-21 14:31:09
  • 409

poj 几道简单的搜索题(三)

题目:poj 2531 题意: 给出n(n 分析: n=20,暴力枚举的时间复杂度才O(2^20*C),C是求和的时间常数。2000ms的时间足够了。暴力枚举的话可以子集枚举和递归(时间接近1000...
  • hjt_fathomless
  • hjt_fathomless
  • 2016-07-15 00:12:38
  • 446

北大POJ初级-简单搜索

  • 2011年07月31日 22:50
  • 342KB
  • 下载

poj~1321(简单搜索)

题目链接:棋盘问题 简单的dfs,当初细节错误,贡献了一次wa。 #include int n,m,ans; int num[10]; //标记第i列是否...
  • ouyangying123
  • ouyangying123
  • 2015-08-23 15:40:01
  • 329

POJ 1321棋盘问题(简单搜索)

POJ 1321棋盘问题(简单搜索)
  • CSDN568302203
  • CSDN568302203
  • 2016-04-20 17:04:02
  • 259

poj 1321 简单搜索

Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆...
  • qq_33817680
  • qq_33817680
  • 2016-06-12 18:25:01
  • 112
收藏助手
不良信息举报
您举报文章:POJ - 1321简单搜索DFS
举报原因:
原因补充:

(最多只允许输入30个字)