洛谷 P1657 选书
AcCode:
#include<iostream>
using namespace std;
struct like{
int a, b;
};
like l[25];
int N, ans;
bool st[25];
int dfs(int idx){
if(idx > N) return 1;
int res = 0;
if(!st[l[idx].a]){
st[l[idx].a] = true;
res += dfs(idx + 1);
st[l[idx].a] = false;
}
if(!st[l[idx].b]){
st[l[idx].b] = true;
res += dfs(idx + 1);
st[l[idx].b] = false;
}
return res;
}
int main(){
cin >> N;
for(int i = 1; i <= N; i++){
int a, b;
cin >> a >> b;
l[i].a = a, l[i].b = b;
}
cout << dfs(1);
return 0;
}