阅读背景:

递推与递归专题练习

来源:互联网 

CH0301 递归实现指数型枚举

搜索与回溯,指数级算法。

#include<bits/stdc++.h>
#define rg register
#define il inline
#define co const
template<class T>il T read(){
    rg T data=0,w=1;
    rg char ch=getchar();
    while(!isdigit(ch)){
        if(ch=='-') w=-1;
        ch=getchar();
    }
    while(isdigit(ch))
        data=data*10+ch-'0',ch=getchar();
    return data*w;
}
template<class T>il T read(rg T&x){
    return x=read<T>();
}
typedef long long ll;
using namespace std;
vector<int>chosen;
int n;
void dfs(int x){
    if(x==n+1){
        for(unsigned i=0;i<chosen.size();++i)
            printf("%d ",chosen[i]);
        puts("");
        return;
    }
    dfs(x+1);
    chosen.push_back(x);
    dfs(x+1);
    chosen.pop_back();
}
int main(){
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);
    read(n);
    dfs(1);
    return 0;
}#include<bits



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: