zoukankan      html  css  js  c++  java
  • 搜索算法

     







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

      

  • 相关阅读:
    bitcoin PoW原理及区块创建过程
    Hyperledger Fabric(v1.1.0)编译时遇到的问题
    Hyperledger Fabic中的Transaction流程
    mint linux 18.3 遇到“已安装的 post-installation 脚本 返回了错误号 127 ”问题的解决
    redis--解析字符串
    golang 统计uint64 数字二进制存储中1的数量
    c++ std 最小堆的使用 (用于实现top100之类的功能)
    Linux 信号signal处理函数
    Linux 信号signal处理机制
    LinuxMint 下 B站 番 blv 缓存 转 mp4
  • 原文地址:https://www.cnblogs.com/wc1903036673/p/3422458.html
Copyright © 2011-2022 走看看