比赛 20251001国庆欢乐赛1 评测结果 WWWWWWTTTT
题目名称 信使 最终得分 0
用户昵称 彭欣越 运行时间 21.248 s
代码语言 C++ 内存使用 13.79 MiB
提交时间 2025-10-01 11:58:40
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=110;
int n,m,p,q,d[N][N][N],c[N][N][N],s[N][N][N];
int u,v,t,sum;
void judge () {
    memset(c,0,sizeof(c));
    for (int idx=2;idx<=t;idx++) {
        for (int k=1;k<=n;k++) {
            for (int i=1;i<=n;i++) {
                for (int j=1;j<=n;j++) {
                    if (k!=u&&k!=v) {   
                        c[idx][i][j]+=(d[idx-1][i][k]+d[1][k][j])%p;
                        c[idx][i][j]%p;
                        //cout << idx <<' '
                    }
                }    
            }    
        }
    }
    memcpy(d,c,sizeof(c));
}
int main () {
    freopen("messenger.in","r",stdin);
    freopen("messenger.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin >> n >> m >> p;
    for (int i=1;i<=m;i++) {
        int a,b;
        cin >> a >> b;
        s[1][a][b]=1;
    }
    cin >> q;
    while (q--) {
        memcpy(d,s,sizeof(s));
        cin >> u >> v >> t;
        judge();                                                           
        cout << d[t][u][v] <<endl;
        sum=0;
    }
    return 0;
}