比赛 2024暑假C班集训D 评测结果 WATTAMMMMM
题目名称 沼泽鳄鱼 最终得分 20
用户昵称 彭欣越 运行时间 10.922 s
代码语言 C++ 内存使用 131.17 MiB
提交时间 2024-07-13 10:14:45
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=2010;
int n,m,startt,endd,K,nf,head[N],f[22][5],mod[22],tot;
long long res;
struct node {
    int idx,nxt;
}e[N];
void add (int u,int v) {
    e[++tot].idx=v;
    e[tot].nxt=head[u];
    head[u]=tot;
}
void dfs (int idx,long long k) {
    for (int i=head[idx];i;i=e[i].nxt) {
        int flag=0;
        for (int j=1;j<=nf;j++) {
            if (f[j][(k+1)%mod[j]]==e[i].idx) {
                flag=1;
                break;
            }
        }
        if (flag==0) {
            if (k+1==K) {
                if (e[i].idx==endd) {
                    res++;
                    res%=10000;
                }
                return;
            }
            dfs(e[i].idx,k+1);
        }
    }
}
int main () {
    freopen("swamp.in","r",stdin);
    freopen("swamp.out","w",stdout);
    cin >> n >> m >> startt >> endd >> K;
    for (int i=1;i<=m;i++) {
        int u,v;
        cin >> u >> v;
        add(u,v);
        add(v,u);
    }
    cin >> nf;
    for (int i=1;i<=nf;i++) {
        cin >> mod[i];
        for (int j=0;j<mod[i];j++) {
            cin >> f[i][j];
        }
    }
    dfs(startt,0);
    cout << res <<endl;
    return 0;
}