19 条题解

  • 0
    @ 2025-12-29 15:22:19
    #include<bits/stdc++.h>
    using namespace std;
    long long s[20][2],ans=0,n;
    bool p[20]={false};
    void dfs(int k)
    {
        if(k>n)
        {
            ans++;
            return ;
        }
        int a=s[k][0];
        int b=s[k][1];
        if(!p[a])
        {
            p[a]=true;
            dfs(k+1);
            p[a]=false;
        }
        if(!p[b])
        {
            p[b]=true;
            dfs(k+1);
            p[b]=false;
        }
    }
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++) cin>>s[i][0]>>s[i][1];
        dfs(1);
        cout<<ans;
        return 0;
    }
    

    信息

    ID
    103
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    47
    已通过
    15
    上传者