
题目中
Y 为参加
N 为不参加
以3为例
先走满,全是N,然后慢慢退,改N为Y就行了
#include <bits/stdc++.h>
using namespace std;
int u,n;
bool mp[11];
void dfs(int u)
{
if(u == n)
{
for(int i = 0; i < n; i++)
if (!mp[i])
cout << "N";
else
cout << "Y";
cout << endl;
return;
}
//由于只有两个选项,就用一个bool来解决
mp[u] = false;
dfs(u+1);
mp[u] = true;
dfs(u+1);
}
int main()
{
cin >> n;
memset(mp,false,sizeof(mp));
dfs(0);
return 0;
}
这篇文章介绍了一个使用C++编写的程序,通过深度优先搜索算法解决N/Y问题,用布尔数组表示选择状态,通过递归实现逐步填入N或Y。

1007

被折叠的 条评论
为什么被折叠?



