灯光问题
#include <bits/stdc++.h> using namespace std; int a[31]={0}; int sum=0; void dfs(int cur) { if(a[cur-1]==0) { a[cur]=1; } if(cur==30) { sum++; return; } else { if(a[cur]==1) { dfs(cur+1); a[cur]=0; } dfs(cur+1); } } int main() { a[0]=1; dfs(1); a[0]=0; dfs(1); cout<<sum; return 0; }