24 lines
689 B
C++
24 lines
689 B
C++
#include <bits/stdc++.h>
|
|
using namespace std;
|
|
int n;
|
|
void dfs(int u, string path) {
|
|
if (u == n) {
|
|
cout << path << endl;
|
|
return;
|
|
}
|
|
|
|
// 吃的布丁个数小于 2、前 2 个吃的布丁中至少有一个不是原味
|
|
if (u + 1 <= 2 || path[u - 1] != '0' || path[u - 2] != '0')
|
|
// 满足以上情况 这次就吃原味
|
|
dfs(u + 1, path + "0");
|
|
// 吃的布丁个数小于 2、前 2 个吃的布丁中至少有一个不是抹茶
|
|
if (u + 1 <= 2 || path[u - 1] != '1' || path[u - 2] != '1')
|
|
// 满足以上情况 这次就吃抹茶
|
|
dfs(u + 1, path + "1");
|
|
}
|
|
int main() {
|
|
cin >> n;
|
|
// 一个布丁也没吃
|
|
dfs(0, "");
|
|
return 0;
|
|
} |