AcWing 92. 递归实现指数型枚举
原题链接
简单
作者:
月亮事务所
,
2021-01-13 21:26:59
,
所有人可见
,
阅读 369
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int N =16;
int n,st[N];
vector<vector<int> > ways;
void dfs(int u)
{
if(u>n)
{
vector<int>way;
for(int i=0;i<n;i++)
if(st[i]==1)
way.push_back(i);
ways.push_back(way);
return;
}
st[u]=2;
dfs(u+1);
st[u]=0;
st[u]=1;
dfs(u+1);
st[u]=0;
}
int main()
{
cin>>n;
dfs(1);
for(int i=0;i<ways.size();i++)
{
for(int j=0;j<ways.size();j++)
printf("%d",ways[i][j]);
puts("");
}
return 0;
}
我问下,st[u]=2;
dfs(u+1);
st[u]=0;
这几行代码怎么解释,它是由上到下按顺序进行的吗?