POJ1321-Chess Problem(dfs基础题)
题意:
中文题干,不多说了.
解题思路:
基础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基础题)相关推荐
- DFS基础-----刷题合集--1(全排列,八皇后,迷宫),让你明白DFS的基础用法
二刷dfs相关题目 洛谷P1706 全排列 https://www.luogu.com.cn/problem/P1706 ...
- 枚举+递归+DFS基础模板类算法总结
:这几天刷这类型题有点难,把这些基础的总结一下,理一下思路,这里感谢一下b站up主:一只会code的小金鱼 ,学到了好多思路 1. 递归实现指数型枚举: eg:从 1∼n这 n个整数中随机选取任意多个 ...
- poj1564 Sum It Up dfs水题
题目描述: Description Given a specified total t and a list of n integers, find all distinct sums using n ...
- UVALive7670 Asa's Chess Problem,上下界费用流,另类解法
Asa's Chess Problem 先阐述一下带上下界的边怎么建. 带上下界的建图方法 设我要建一条边(u→v)(u\rightarrow v)(u→v),流量上界为upupup,下界为downd ...
- python代码基础题-python第一部分基础题1-80题
各位Python的第一部分1-80道基础题已经整理好了,希望面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之 ...
- python代码基础题-python每日经典算法题5(基础题)+1(中难题)
现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...
- linux面试题-基础题1
linux面试题-基础题1 第1章 基础题1 1.1 在装系统创建Linux分区时,一般至少需要创建两个分区( ) A.FAT.NTFS B. /usr.swap C. /boot.swap ...
- 思科面试题c语言,C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc...
| 基本C语言基础题 1 ? .? 用预处理指令#define? 声明一个常数,用以表明1 年中有多少秒(忽略闰年问题)? #define? SECONDS_PER_YEAR ? (60 ? *? 6 ...
- 微型计算机最早提出于,计算机基础题1、世界上第一台电子计算机诞生于A)1943年B-查字典问答网...
计算机基础题 1.世界上第一台电子计算机诞生于 A)1943年B)1946年 C)1945年D)1949年 2.世界上公认的第一台电子计算机的逻辑元件是 A)继电器B)晶体管 C)电子管D)集成电路 ...
- python基础题面试_python常见面试题
面试自动化会遇到的面试题,分享一波,就不排版了,多多见谅. 先上几道编程题 001 求数值以内的质数,合数及个数 #质数 defzhishu(number): num=0for i in range( ...
最新文章
- List集合add方法覆盖原来的内容解决办法
- java进度条字体颜色_java – Nimbus LF – 改变进度条的背景颜色
- Spring 中获取servletContext及WebApplicationContext以及applicationContext三者之间的关系
- java的static块执行时机
- 网络流专题(完结撒花)
- 浅谈:Hadoop、spark、SaaS、PaaS、IaaS、云计算
- 最佳实践 —— 单元测试
- Mac安装iproute2/dig/traceroute
- 怎么制作自己的压缩软件
- 苹果 WWDC21 发布会全汇总,iOS 15更个性化,全家桶协作更有生产力
- 面向对象开发期末复习概述(一)
- 王厚祥谈《古诗四帖》基本笔画的书写方法
- printf(%d%d%d%d\n, a,b,c);
- svg基础--基本语法与标签
- 电视屏幕太伤眼,五个地方降低亮度,来缓解眼睛痛.
- 判断通过微信、支付宝扫一扫进入的页面
- javascript百炼成仙 第一章 掌握JavaScript基础1.7 对象数据类型
- 2017计算机组装,2017电脑组装配置
- 泛微OA使用笔记-测试
- ChatGPT为什么可以取代那么多职位?
热门文章
- 读取jar中资源文件的问题
- mysql定位数据库_MySQL数据库Query性能定位
- android 命名空间解析,Android Bluetooth、Android AdapterView等命名空间-Android中文API文档...
- fastjson 添加key value_采坑系列—fastjson
- 我的世界java版怎么打开聊天栏_我的世界JAVA版才有的隐藏模式只有开发者才知道怎么进入...
- sleuth zipkin mysql_springCloud的使用08-----服务链路追踪(sleuth+zipkin)
- java元数据是什么_Java和大数据是什么关系 杭州哪个就业前景更好
- 清理localstorage_清除浏览器localstorage的数据
- 无缓冲I/O与有缓冲I/O区别
- html编写个人博客_云开发平台开箱,3分钟零基础搭建个人Hexo博客