[POJ-1321]棋盘问题

题源:POJ-1321
深搜板子题,非常基础,难度不大

  • 思路1:广搜行 深搜列
#include<iostream>
#include<cstring>
using namespace std;
const int MAX=9;
int a,b,ans;
char m[MAX][MAX];
//深搜列,广搜行
bool h[MAX];
void dfs(int ,int k){if(k==b){ans++;return;}if(lie>a) return;for(int i=1;i<=a;i++){//广搜行if(m[i][lie]=='#'&&!h[i]){h[i]=1;dfs(lie+1,k+1);//找到#,右移一列h[i]=0;//找到一种方案,回溯,撤销标记,继续向下广搜行}}dfs(lie+1,k);//到行的尽头,右移一列
}
int main(){while(cin>>a>>b){if(a==-1&&b==-1) return 0;for(int j=1;j<=a;j++)for(int i=1;i<=a;i++)cin>>m[j][i];ans=0;memset(h,0,sizeof h);dfs(1,0);cout<<ans<<endl;}return 0;
}
  • 思路2:广搜列 深搜行
#include<iostream>
#include<cstring>
using namespace std;
const int MAX=9;
int a,b,ans;
char m[MAX][MAX];
//深搜行,广搜列
bool lie[MAX];
void dfs(int hang,int k){if(k==b){ans++;return;}if(hang>a) return;for(int i=1;i<=a;i++){if(m[hang][i]=='#'&&!lie[i]){lie[i]=1;dfs(hang+1,k+1);lie[i]=0;}}dfs(hang+1,k);
}
int main(){while(cin>>a>>b){if(a==-1&&b==-1) return 0;for(int j=1;j<=a;j++)for(int i=1;i<=a;i++)cin>>m[j][i];ans=0;memset(lie,0,sizeof lie);dfs(1,0);cout<<ans<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DS高阶:跳表

一、skiplist 1.1 skiplist的概念 skiplist本质上也是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;跟平衡搜索树和哈希表的价值是一样的&#xff0c;可以作为key或者key/value的查找模型。skiplist是由William Pugh发明的&#xff0c;最早出现于他在1990年发…

Python学习之路 | Python基础语法(一)

数据类型 Python3 中常见的数据类型有&#xff1a; Number&#xff08;数字&#xff09;String&#xff08;字符串&#xff09;bool&#xff08;布尔类型&#xff09;List&#xff08;列表&#xff09;Tuple&#xff08;元组&#xff09;Set&#xff08;集合&#xff09;Dict…

鸿蒙HDC命令行工具:模拟操作

模拟操作 uinput用于输入模拟操作&#xff0c;其命令帮助手册为&#xff1a; > hdc shell uinput --help Usage: uinput <option> <command> <arg>... The option are: -M --mouse //模拟鼠标操作 commands for mouse: -m <dx> <d…

【Image captioning】基于检测模型网格特征提取——以Sydeny为例

【Image captioning】基于检测模型网格特征提取——以Sydeny为例 今天,我们将重点探讨如何利用Faster R-CNN检测模型来提取Sydeny数据集的网格特征。具体而言,这一过程涉及通过Faster R-CNN模型对图像进行分析,进而抽取出关键区域的特征信息,这些特征在网格结构中被系统地…

1金融风控相关业务介绍

金融风控相关业务介绍 学习目标 知道常见信贷风险知道机器学习风控模型的优势知道信贷领域常用术语含义1 信贷&风控介绍 信贷业务,就是贷款业务,是商业银行和互联网金融公司最重要的资产业务和主要赢利手段 通过放款收回本金和利息,扣除成本后获得利润。贷款平台预测有…

java中什么是方法的返回值?方法有哪几种类型?

在Java中&#xff0c;方法的返回值是指方法执行后返回给调用者的结果。返回值可以是任何数据类型&#xff0c;包括基本数据类型&#xff08;如int、float&#xff09;和引用数据类型&#xff08;如String、对象&#xff09;。返回值的主要作用是将方法执行的结果传递给调用该方…

springboot集成dubbo实现微服务系统

目录 1.说明 2.示例 3.总结 1.说明 dubbo官网&#xff1a;https://cn.dubbo.apache.org/zh-cn/ Apache Dubbo 是一款 RPC 服务开发框架&#xff0c;用于解决微服务架构下的服务治理与通信问题&#xff0c;支持多种语言&#xff0c;官方提供了 Java、Golang 等多语言 SDK 实…

什么是Vue.js? Vue.js简介

什么是Vue.js? Vue.js简介 Vue.js是一种用于构建用户界面的前端框架。它是目前非常流行的JavaScript框架之一&#xff0c;被广泛应用于单页应用和响应式网页开发。 Vue.js具有以下特点和优势&#xff1a; 轻量级&#xff1a; Vue.js的文件体积很小&#xff0c;加载速度快&…

代码随想录--链表--反转链表

题目 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 如果再定义一个新的链表&#xff0c;实现链表元素的反转&#xff0c;其实这是对内存空间的浪费。 其实只需要改变链表的next指针的…

GPU学习记一下线程分组相关

在compute的时候&#xff0c;是要dispatch一个数量的代表分了多少块任务集&#xff0c;dispatch的块内部也是有一个数量的&#xff0c;那么这些值怎么取的呢 内部&#xff0c;N卡32 外面dispatch的数量就是all/32 然后细说这个值 这有一个叫core的东西&#xff0c;就是相当于th…

嵌入式学习-PWM输出比较

简介 PWM技术 输出比较框图介绍 定时器部分 比较器控制部分 输出控制部分 相关寄存器

(5.4–5.10)投融资周报|共38笔公开投融资事件,基础设施领跑,游戏融资活跃

5月4日至5月10日期间&#xff0c;加密市场共发生38笔投融资事件&#xff0c;其中基础设施18笔、游戏5 笔、其他4 笔、DeFi 3笔、Depin 3 笔、CeFi 2笔、NFT2笔、 RWA1笔。 本周千万美金以上融资有5笔&#xff1a; 加密货币交易公司Arbelos完成了一轮2800 万美元的种子轮融资&…

智慧园区EasyCVR视频智能管理方案:构建高效安全园区新视界

一、背景分析 园区作为城市的基本单元&#xff0c;是最重要的人口和产业聚集区。根据行业市场调研&#xff0c;90%以上城市居民工作与生活在园区进行&#xff0c;80%以上的GDP和90%以上的创新在园区内产生&#xff0c;可以说“城市&#xff0c;除了马路都是园区”。 园区形态…

C++ static_cast学习

static_cast可实现&#xff0c; 1 基本类型之间的转换 2 void指针转换为任意基本类型的指针 3 用于有继承关系的子类与父类之间的指针或引用的转换 用于基本类型转化时&#xff0c;会损失精度类似于C语言的强制转化&#xff1b; 下面先看一下void指针的转换&#xff1b; …

手动实现Promise

// 定义异步调用的主类&#xff0c;名为 MyPromise class MyPromise {// 执行器接收 resolve 和 reject 方法来改变 promise 的状态constructor(executor) {// 初始化状态为 "pending"this.state "pending";// 初始化值为 undefinedthis.value undefined…

镜像抑制和镜像衰减有什么不同

在很多无线产品接收机手册中&#xff0c;我们会看到两个参数&#xff0c;一个是镜像抑制&#xff08;Image Rejection&#xff09;&#xff0c;另一个是镜像衰减&#xff08;Image Attention&#xff09;&#xff0c;但这两者究竟有什么不同&#xff0c;一直比较疑惑&#xff0…

AI学习指南线性代数篇-奇异值分解

AI学习指南线性代数篇-奇异值分解 一、概述 在人工智能领域&#xff0c;线性代数是一项非常重要的基础知识&#xff0c;而奇异值分解&#xff08;Singular Value Decomposition, SVD&#xff09;作为线性代数中的一种重要工具&#xff0c;被广泛应用于机器学习、数据科学等领…

理解Spring的IOC核心:为何它成为开发中的关键要素?

Spring框架采用的IOC&#xff08;依赖注入&#xff09;技术&#xff0c;是一种创新的设计思路&#xff0c;它授权程序开发人员将组件实例化及生命周期管理的职责转交给框架自身处理。在这一机制下&#xff0c;Spring框架负责协调并装配应用程序中的各个组件&#xff0c;从而实现…

以太坊Layer 2开发商StarkWare

文章目录 以太坊Layer 2开发商StarkWare相关新闻StarkWare是什么团队介绍StarkEx 和 StarkNet参考以太坊Layer 2开发商StarkWare 相关新闻 据The Block 2021年11月16日消息,使用ZK-rollups技术的以太坊第2层开发商StarkWare在C轮融资中筹集了5000万美元,其估值已达20亿美元…

三路输出小功率开关电源【MATLAB/simulink】

拟选用一种DC-DC变换器拓扑使用1700 V SiC MOSFET或IGBT设计三相功率系 统的高频开关直流辅助电源&#xff0c;它可用于太阳能逆变器、工业开关电源、电动汽车充电器、 电机驱动装置等领域。&#xff08;建议采用单端反激式电路拓扑&#xff0c;开关频率为80kHz) 电路基本参数&…