luogu_1657 选书

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int n,a[30],b[30],ans;
bool use[30];

void search(int now){
    if(now>n){ans++; return;}
    if(!use[a[now]]){
        use[a[now]]=true;
        search(now+1);
        use[a[now]]=false;
    }
    if(!use[b[now]]){
        use[b[now]]=true;
        search(now+1);
        use[b[now]]=false;
    }
    return;
}

int main(){
    memset(use,0,sizeof(use));
    scanf("%d",&n);
    if(n==0){puts("0"); return 0;}
    for(int i=1;i<=n;i++)scanf("%d%d",&a[i],&b[i]);
    search(1);
    printf("%d
",ans);
    return 0;
}

  

原文地址:https://www.cnblogs.com/codetogether/p/8136118.html