深度优先搜索--算法(城堡问题 poj1164)

博客介绍了如何使用深度优先搜索算法解决城堡问题,将其转化为图论问题,寻找极大连通子图来确定房间数量和最大房间的大小。通过遍历和染色策略,实现搜索并统计结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


深度优先搜索是一种基于图的方式:

在图中的遍历就是深度和广度遍历,,这是一种算法思想:

深度优先搜索遍历就是找到某一个顶点,一种向下走,能走多远就走多远;

一种策略:只要能发现没走过的点,就走到它。有多个点可走就随便挑一个,如果无路可走就回退,再看有没有没走过的点可走 ;

从起点出发,走过的点要做标记,发现有没走过的点,就随意挑一个往前走,走不
了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”。

一般的模型:

深度优先搜索的模型:

1):先判断是不是能在一个连通图上能找到终点(函数bool DFS(V)  其中V是结点);

        1.是不是终点(很直接)是就返回true

        2.是不是旧点(这是从上面判断后再做的判断)是就直接返回false

        3.如果12步都不满足,就访问这个点(访问之前进行旧点的装换),然后在访问这个点所有的邻近点(再重复12步骤);

        4.如果所有的连通节点都访问了,还是没有找到终点,表示终点不能再这里的连通图中找到,就返回false

模型函数:

bool DFS(v)

{

    if(v是终点)

        return true;

    if(v是旧点)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值