这个程序中的dfs(0)是什么意思? - 爱问答

(爱问答)

这个程序中的dfs(0)是什么意思?

#include<bits/stdc++.h>

using namespace std;

int n,pd[100],used[100];//pd是判断是否用过这个数

void print()//输出函数

{    

int i;    

for(i=1;i<=n;i++)    

printf("%5d",used[i]);//保留五位常宽
   

cout<<endl;
}void dfs(int k)//深搜函数,当前是第k格{

    int i;   

 if(k==n) //填满了的时候
  

 {
       

print();//输出当前解
       

return;
  

 }   

 for(i=1;i<=n;i++)//1-n循环填数
  

 {        

if(!pd[i])//如果当前数没有用过
       

{
           

pd[i]=1;//标记一下
           

used[k+1]=i;//把这个数填入数组
           

dfs(k+1);//填下一个
           

pd[i]=0;//回溯
       } }
}

int main(){    

cin>>n;
  

 dfs(0);//注意,这里是从第0格开始的!
   

return 0;
}

你程序中的dfs是一个深度搜索函数,它用递归的方法求全排列


下一篇:菲律宾语、马来语、印尼语哪个好听呢?

上一篇:什么是微积分?其中的基本定理是什么?

热门标签:
英语 谜语 作文 数学 公式 语文 物理 化学 工艺 java c语言 实验 方程 金属 分子 数据库 硫酸 酒精 运算 石油 vc 世界大战 php 化合物 mysql
最新更新:
电学的一个小问题 为什么打点计时器只能粗略瞬时速度 lookdownupon用法 中专都考不上大学有必要复读一年吗? 如图,已知∠B=∠DEF,AB=DE,请添加一个条件使△ABC≌△DEF,则需添加的条件是__________. 求曲线y=2x^2和直线y=2的所围图形的面积 夜上受降城闻笛是哪句 这个怎么填数字? 小明家下五层楼是5楼,那么小明家上五层楼是几层楼? 填空题,这个题目是怎么算的呢…… 22335577()143中括号里填什么数字。 懂得人帮我看一下这个英文是啥意思??? 最小的物质单位是什么 怎么估算根号52000000 about的重读字母是哪里