• 搜索算法


     







    //从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); }

      





    //从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); }

      

    #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++) 
    				{  int ok=1;
    				  for(int j=0;j<=k-1;j++)
    				   if(a[j]==i)  ok=0 ;
    					
    				  
                      if(ok)   {a[k]=i;    DFS(k+1);} 
    				}
    }
    int main()
    {        cin>>m>>n;         DFS(0);          }
    
    
    
    
    
    //从1到m中取n个数,不允许重复取数
    
    #include <iostream>
    using namespace std;
    int n,m, a[10];  bool bz[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++)   
               if ( !bz[i] )
               {  a[k]=i;  bz[i]=true;  DFS(k+1); bz[i]=false;}
    }
    int main()
    {        cin>>m>>n;         DFS(0);          }
    
    
    
    
    //从1到m中取n个数,不允许重复取数,即排列方法2
    #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=k; i<m; i++)   
            {    int t=a[k];a[k]=a[i];a[i]=t;
                 DFS(k+1); 
                 t=a[k];a[k]=a[i];a[i]=t;       }
    }
    int main()
    {   cin>>m>>n;    
        for (int i=0; i<m; i++) a[i]=i+1;
        DFS(0);   return 0;    
    }
    
    
    
    
    
    //从1到m中取n个数,不允许重复取数,即排列方法2
    #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=k; i<m; i++)   
            {    int t=a[k];a[k]=a[i];a[i]=t;
                 DFS(k+1); 
                 t=a[k];a[k]=a[i];a[i]=t;       }
    }
    int main()
    {   cin>>m>>n;    
        
        DFS(0);       
    }
    

      

  • 相关阅读:
    volatile关键字——确保本指令不会因编译器的优化而省略
    c#判断字符串是否为空或null
    python+selenium基础之XPATH轴定位
    python+selenium基础之XPATH定位
    在python中使用正则表达式
    selenium 的css选择器语法
    selenium用法详解
    selenium+requests进行cookies保存读取操作
    Python selenium 三种等待方式详解
    selenium 显示等待应用
  • 原文地址:https://www.cnblogs.com/wc1903036673/p/3422458.html
Copyright © 2020-2023  润新知