深度优先搜索

ans;                  //答案,用全局变量表示
void dfs(层数,其他参数){
    if (出局判断){    //到达最底层,或者满足条件退出 
        更新答案;     //答案一般用全局变量表示
        return;       //返回到上一层
    }
    (剪枝)            //在进一步DFS之前剪枝
    for (枚举下一层可能的情况)  //**!!!对每一个情况继续DFS  坐标变化!!!***
        if (used[i] == 0) {     //如果状态i没有用过,就可以进入下一层
            used[i] = 1;   //标记状态i,表示已经用过,在更底层不能再使用
            dfs(层数+1,其他参数);    //下一层 
            used[i] = 0;   //恢复状态,回溯时,不影响上一层对这个状态的使用
            }
    return;                //返回到上一层
}

深度优先搜索总结:
dfs的两步:截至条件和搜索条件
回溯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值