比赛 2024暑期C班集训4 评测结果 AWEEEEEEEE
题目名称 勇者 最终得分 10
用户昵称 Untitled 运行时间 1.381 s
代码语言 C++ 内存使用 4.88 MiB
提交时间 2024-07-04 10:46:10
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

int n,m,res;
int f[310][310],fr;
bool d[310];

bool judge(int x){
    d[x]=1;fr--;
    if (!fr) return 1;
    for (int i=1;1<=n;i++){
        if (d[i] || x==i || !f[x][i]) continue;
        if (judge(i)) return 1;
    }
    return 0;
}

void dfs(int x,int k){
    
    if (!k){
        memset(d,0,sizeof(d));
        fr=n;
        for (int i=1;i<=n;i++){
            if (!judge(i)) return;
        }
        res++;
        if (res>1e9+7) res-=1e9+7;
        return;
    }
    printf("%d %d\n",x,k);
    for (int i=1;i<=n;i++){
        if (i==x) continue;
        else{
            printf("%d\n",i);
            f[x][i]++;
            dfs(i,k-1);
            f[x][i]--;
        }
    }
    return;
}

int main(){
    freopen("rotk.in","r",stdin);
    freopen("rotk.out","w",stdout);
    
    scanf("%d %d",&n,&m);
    if (m<n){
        printf("0");
        return 0;
    }
    if (n==1){
        printf("1");
        return 0;
    }
    if (m==n){
        printf("2");
        return 0;
    }
    dfs(1,m);
    printf("%d",res);
    
    return 0;
}