1. 注意dfs内,for循环的遍历,想清楚把什么赋值给a[x]
2.本题只需要把0或1赋值给a[x]所以

#include<bits/stdc++.h>
using namespace std;
int n;
int a[20];
int vis[20];
void pr() {
for (int i = 1; i <= n; i++) {
if (a[i] ==0)
cout << 'N';
else
cout << 'Y';
}
cout << endl;
}
void dfs(int x) {
if (x > n) {
pr();
return ;
}
for (int i = 0; i <= 1; i++) {
a[x] = i;
dfs(x + 1);
}
}
int main() {
cin >> n;
dfs(1);
return 0;
}

![[Linux]从零开始的网站内网穿透教程](https://i-blog.csdnimg.cn/direct/6753f9a5e07d49e6a5e900e36bc8779f.png)








![[spring]Spring AOP 及 代理模式](https://i-blog.csdnimg.cn/direct/8fdc428eab164fe9892c77021900c959.png)







