首页 > 其他分享 >简单搜索(BFS,DFS,剪枝)一网打尽

简单搜索(BFS,DFS,剪枝)一网打尽

时间:2024-09-23 21:24:25浏览次数:12  
标签:剪枝 int DFS BFS fx 搜索 && 节点

深搜 DFS

含义

深搜是一种遍历或搜索图和树的算法。

实现方式(不撞南墙不回头)

根据题目选择一个适合的源节点,从源节点开始选择一条路一直走,直到无法前进(不满足题目条件)时,返回到上一个节点重新尝试,直到当前的节点的所有子节点都已经被访问过,再次返回到当前节点的上一节点,继续重复。

模板题 (P1605 迷宫)

最基本的DFS,通过直接搜索、判断、标记可得出答案

#include<bits/stdc++.h>
using namespace std;
int n,m,t;
int sx,sy,fx,fy,vis[10][10],ans;
int dx[4]={0,0,-1,1},dy[4]={-1,1,0,0};//四个方向
void dfs(int x,int y){
	if(x==fx&&y==fy){
			ans++;
			return;//继续搜索其他答案
		}
	for(int i=0;i<4;i++){//四个方向查找可行方案
		int mx=x+dx[i];
		int my=y+dy[i];
		if(mx>=1&&mx<=n&&my>=1&&my<=m&&vis[mx][my]!=1){//判断越界和是否走过
			vis[mx][my]=1;//标记
			dfs(mx,my);
			vis[mx][my]=0;//回溯
		}
	}
}
int main(){
	cin>>n>>m>>t;
	cin>>sx>>sy>>fx&g

标签:剪枝,int,DFS,BFS,fx,搜索,&&,节点
From: https://blog.csdn.net/2301_79343939/article/details/142469029

相关文章

  • HBase与HDFS&Hive
    在大数据领域中,HBase和HDFS是两种常用的存储系统。它们各自有其独特的特性和优势,但也有一些关键的差异。理解这些差异可以帮助我们更好地选择适合我们需求的存储解决方案。HBase:HBase是一个分布式列存储数据库,它是ApacheHadoop生态系统的一部分。它以行键为索引,支持高性能的随机......
  • GridFS
     1.概述如果文件大小超过16MB的BSON文档大小限制,可以使用GridFS来存储和检索。GridFS不将文件存储在一个文档中,而是大型数据进行分块处理,然后将这些切分后的小文档保存在数据库中。 2.GridFS的工作原理GridFS在存储桶中组织文件,存储桶是一组包含文件块和描述性信......
  • FastDFS配置文件tracker
    #valu:路径base_path=/home/michael/fdfs/base4trackermax_connections#func:最大连接数#valu:正整数值m一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎徽关注公zhong号:编程进阶路加入我们的的圈子(技术交流、学习资源、职......
  • BFS 马的遍历————洛谷p1443
    马的遍历题目描述有一个\(n\timesm\)的棋盘,在某个点\((x,y)\)上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。输入格式输入只有一行四个整数,分别为\(n,m,x,y\)。输出格式一个\(n\timesm\)的矩阵,代表马到达某个点最少要走几步(不能到达则输出\(-......
  • BFS 颜色填涂———洛谷p1162
    填涂颜色题目描述由数字\(0\)组成的方阵中,有一任意形状的由数字\(1\)构成的闭合圈。现要求把闭合圈内的所有空间都填写成\(2\)。例如:\(6\times6\)的方阵(\(n=6\)),涂色前和涂色后的方阵如下:如果从某个\(0\)出发,只向上下左右\(4\)个方向移动且仅经过其他\(0\)的情况下......
  • dfs 油滴拓展——洛谷p1378
    油滴扩展题目描述在一个长方形框子里,最多有\(N\)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界。必须等一个油滴扩展完毕才能放置下一个油滴。那么应该按照怎样的顺序在这\(N\)个点上放置油滴,才能使放置完毕后所有......
  • (LeetCode 热题 100) 199. 二叉树的右视图(递归、深度优先搜索dfs)
    199.二叉树的右视图思路:递归每次都优先右边子树,然后才是左子树。/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}......
  • Java中的高效模型压缩技术:从剪枝到知识蒸馏
    Java中的高效模型压缩技术:从剪枝到知识蒸馏大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!随着深度学习模型在各种任务中的广泛应用,模型的规模和复杂度也在不断增加。然而,较大的模型通常会占用大量的计算资源和内存,使其在资源有限的设备上(如移动设......
  • 大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他
    点一下关注吧!!!非常感谢!!持续更新!!!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(正在更新···)章节内容上节我们完成了如下的内容:MergeTre......
  • 【DFS深度优先搜索】纵火犯
    【问题描述】给你一块n*m的草坪,问如果只点一次火,最多能烧多少块草坪。可以从n*m的草地中任意一个地方开始点火,火只能往上下左右传递,没有草的地方不能燃烧。【输入格式】输入由多个测试例组成。每个测试例的第一行含两个整数n和m,(1<=n,m<=100),分别表示01矩阵的行数与列......