题意:

中文题干,不多说了.

解题思路:

基础dfs.dfs思路其实很简单,就是走到走不了了以后,就回退一步,然后重新搜索.

用bool chess[9][9]标记哪些可以走,用col[9]标记哪些列走过了,从第一行往下搜.

代码用递归的实现的,初学的时候,看代码都比较费劲,这个时候就需要自己手动模拟一遍,模拟完了以后,就都明白了.

下面上我的手动模拟过程(太乱...勿介意....就是为了让大家自己去模拟做个垃圾示范....

接下来上代码,初学的话,需要手打一遍代码,然后手动模拟一遍,这样基本就领会dfs大概代码思路了.

#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;bool chess[9][9];    //标记哪些点能走
bool col[9];        //标记哪几列走过了
int n,k,status;     //status:可行方案 void dfs(int row,int num)
{if(num == k){status++;return;}if(row > n)return;for(int i = 1;i <= n;i++){if(!col[i] && chess[row][i]){col[i] = true;           //标记走过了 dfs(row+1,num+1);     //跳到下一行 col[i] = false;            //取消标记 }}dfs(row+1,num);           //没有取点到下一行 return;}int main()
{int j,i;while(cin>>n>>k){memset(chess,false,sizeof(chess));memset(col,false,sizeof(col));      //初始化 status = 0;if(n == -1 && k == -1)break;for(i = 1;i <= n;i++){for(j = 1;j <= n;j++){char a;cin>>a;if(a == '#')chess[i][j] = true;}}dfs(1,0);cout<<status<<endl;}return 0;
}

POJ1321-Chess Problem(dfs基础题)相关推荐

  1. DFS基础-----刷题合集--1(全排列,八皇后,迷宫),让你明白DFS的基础用法

    二刷dfs相关题目 洛谷P1706            全排列 https://www.luogu.com.cn/problem/P1706                              ...

  2. 枚举+递归+DFS基础模板类算法总结

    :这几天刷这类型题有点难,把这些基础的总结一下,理一下思路,这里感谢一下b站up主:一只会code的小金鱼 ,学到了好多思路 1. 递归实现指数型枚举: eg:从 1∼n这 n个整数中随机选取任意多个 ...

  3. poj1564 Sum It Up dfs水题

    题目描述: Description Given a specified total t and a list of n integers, find all distinct sums using n ...

  4. UVALive7670 Asa's Chess Problem,上下界费用流,另类解法

    Asa's Chess Problem 先阐述一下带上下界的边怎么建. 带上下界的建图方法 设我要建一条边(u→v)(u\rightarrow v)(u→v),流量上界为upupup,下界为downd ...

  5. python代码基础题-python第一部分基础题1-80题

    各位Python的第一部分1-80道基础题已经整理好了,希望面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之 ...

  6. python代码基础题-python每日经典算法题5(基础题)+1(中难题)

    现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...

  7. linux面试题-基础题1

    linux面试题-基础题1 第1章 基础题1 1.1 在装系统创建Linux分区时,一般至少需要创建两个分区( ) A.FAT.NTFS   B. /usr.swap    C. /boot.swap ...

  8. 思科面试题c语言,C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc...

    | 基本C语言基础题 1 ? .? 用预处理指令#define? 声明一个常数,用以表明1 年中有多少秒(忽略闰年问题)? #define? SECONDS_PER_YEAR ? (60 ? *? 6 ...

  9. 微型计算机最早提出于,计算机基础题1、世界上第一台电子计算机诞生于A)1943年B-查字典问答网...

    计算机基础题 1.世界上第一台电子计算机诞生于 A)1943年B)1946年 C)1945年D)1949年 2.世界上公认的第一台电子计算机的逻辑元件是 A)继电器B)晶体管 C)电子管D)集成电路 ...

  10. python基础题面试_python常见面试题

    面试自动化会遇到的面试题,分享一波,就不排版了,多多见谅. 先上几道编程题 001 求数值以内的质数,合数及个数 #质数 defzhishu(number): num=0for i in range( ...

最新文章

  1. List集合add方法覆盖原来的内容解决办法
  2. java进度条字体颜色_java – Nimbus LF – 改变进度条的背景颜色
  3. Spring 中获取servletContext及WebApplicationContext以及applicationContext三者之间的关系
  4. java的static块执行时机
  5. 网络流专题(完结撒花)
  6. 浅谈:Hadoop、spark、SaaS、PaaS、IaaS、云计算
  7. 最佳实践 —— 单元测试
  8. Mac安装iproute2/dig/traceroute
  9. 怎么制作自己的压缩软件
  10. 苹果 WWDC21 发布会全汇总,iOS 15更个性化,全家桶协作更有生产力
  11. 面向对象开发期末复习概述(一)
  12. 王厚祥谈《古诗四帖》基本笔画的书写方法
  13. printf(%d%d%d%d\n, a,b,c);
  14. svg基础--基本语法与标签
  15. 电视屏幕太伤眼,五个地方降低亮度,来缓解眼睛痛.
  16. 判断通过微信、支付宝扫一扫进入的页面
  17. javascript百炼成仙 第一章 掌握JavaScript基础1.7 对象数据类型
  18. 2017计算机组装,2017电脑组装配置
  19. 泛微OA使用笔记-测试
  20. ChatGPT为什么可以取代那么多职位?

热门文章

  1. 读取jar中资源文件的问题
  2. mysql定位数据库_MySQL数据库Query性能定位
  3. android 命名空间解析,Android Bluetooth、Android AdapterView等命名空间-Android中文API文档...
  4. fastjson 添加key value_采坑系列—fastjson
  5. 我的世界java版怎么打开聊天栏_我的世界JAVA版才有的隐藏模式只有开发者才知道怎么进入...
  6. sleuth zipkin mysql_springCloud的使用08-----服务链路追踪(sleuth+zipkin)
  7. java元数据是什么_Java和大数据是什么关系 杭州哪个就业前景更好
  8. 清理localstorage_清除浏览器localstorage的数据
  9. 无缓冲I/O与有缓冲I/O区别
  10. html编写个人博客_云开发平台开箱,3分钟零基础搭建个人Hexo博客