1 条题解

  • 0
    @ 2022-10-2 15:37:45
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    bool f[110][110];
    int num,n,k,m,p[110];
    
    bool check(int sum)
    {
        for(int i=1;i<=sum;i++){
            if(f[i][sum]==true&&p[i]==p[sum]){
                return false;
            }
        }
        return true;
    }
    
    void dfs(int s)
    {
        if(s>n){
            num++;
            return;
        }
        for(int i=1;i<=m;i++){
            p[s]=i;
            if(check(s)==true){
                dfs(s+1);
            }
    		else{
                p[s]=0;
            }
        }
    }
    
    signed main()
    {
        cin>>n>>k>>m;
        for(int i=1;i<=k;i++){
            int x,y;
            cin>>x>>y;
            f[y][x]=true;
    		f[x][y]=true;
        }
        
        dfs(1);
        
        cout<<num;
        return 0;
    }
    
    • 1

    信息

    ID
    139
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    (无)
    递交数
    46
    已通过
    22
    上传者