栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

dfs深度优先搜索

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

dfs深度优先搜索

特点:

递归,不撞南墙不回头。

大致框架
void dfs(int step){

if(判断边界) {达到边界时return}

尝试每一种可能 for(i=0;i 
具体例子 

OOO+OOO=OOO,O中分别填入1-9使等式成立(用c语言实现)

 

//深度优先搜索介绍
//auther gaofeimax
#include 
int n,book[10],a[20],total;

int sum(int t){
	return 100*a[t]+10*a[t+1]+a[t+2];
}




void dfs(int step){
	int sum(int t);
	int i;
	if(step==9){
		if(sum(0)+sum(3)==sum(6)){
			total++;
			return;
		}
	}
	else{
		for(i=1;i<=9;i++){
			if(book[i]==0){
				book[i]=1;
				a[step]=i;
				dfs(step+1);
				book[i]=0;
			}

		}
		return;
	}

}


int main(){
dfs(0);
printf("%d",total/2);
return 0;
}
		

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号