当前位置:编程学习 > C/C++ >>

poj 2245

简单的DFS。。

下面是AC代码:
[cpp] 
#include<cstdio> 
using namespace std; 
int k; 
int a[100]; 
bool vis[100]; 
 
void dfs(int cur,int cnt){ 
 
    if(cnt==6){ www.zzzyk.com
       int i; 
       for( i=0;i<k;i++)  if(vis[i]) { printf("%d",a[i]);  break;} 
       for(int j=i+1;j<k;j++)  if(vis[j]) { printf(" %d",a[j]);    } 
       printf("\n"); 
       return ; 
    } 
    else if(cnt<k){ 
         for(int i=cur;i<k;i++){ 
             if(!vis[i]){ 
                 vis[i]=true; 
                 dfs(i+1,cnt+1); 
                 vis[i]=false; 
             } 
         } 
    } 

int main(){ 
 
    while(scanf("%d",&k)!=EOF,k){ 
 
        for(int i=0;i<k;i++)  scanf("%d",&a[i]); 
 
        dfs(0,0); 
         
        printf("\n"); 
 
    } 
    return 0; 
 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,