码迷,mamicode.com
首页 > 其他好文 > 详细

深度优先DFS

时间:2014-08-03 15:10:35      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   strong   io   for   

 

深度优先(DFS)模板1:

void   DFS(int k)             //处理第k步
{   if  (k==n)                              //已经处理到第n步,到达目的状态 
               输出结果
    else                               //处理第k步
          for (int i=1; i<=m; i++)            //第k步中有m种可能
          {    处理第k步
                    DFS(k+1);//进入第k+1步
          }
}

 

 

例1:多重排列问题

输出1-m个数中取n个数的所有多重排列。例如n=2,m=3的所有多重排列为:
1    1
1    2
1    3
2    1
2    2
2    3
3    1
3    2
3    3

bubuko.com,布布扣
//从1到m中取n个数,允许重复取数

#include <iostream>
using namespace std;
int n,m, a[10];
void  DFS(int k)
{      if  (k==n) 
        {       for (int i=0; i<n; i++)     cout<<a[i]<<" ";
                cout<<endl;   
        }
        else 
                for (int i=1; i<=m; i++)   
                {    a[k]=i;    DFS(k+1);      }
}
int main()
{        cin>>m>>n;         DFS(0);    return 0;       }
View Code

 

//从1到m中取n个数,允许重复取数

#include <iostream>

using namespace std;

int n,m, a[10];

void  DFS(int k)

{      if  (k==n)        

                     {       for (int i=0; i<n; i++)  

                                                     cout<<a[i]<<" ";                 cout<<endl;           }     

 

    else               

                    for (int i=1; i<=m; i++)             

                              {    a[k]=i;      DFS(k+1);            }

}

 

int main()

       cin>>m>>n;  

       DFS(0); 

   return 0;    

   }

 

深度优先DFS,布布扣,bubuko.com

深度优先DFS

标签:style   blog   http   color   os   strong   io   for   

原文地址:http://www.cnblogs.com/2014acm/p/3888381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!