1 条题解

  • 0
    @ 2025-11-3 0:09:35

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 510;
    vector<int> g[N*21];
    bool vis[N*21];
    int cnt[N][30];
    void dfs(int pos , int fa , int k){
        for (int i = 0 ; i < g[pos].size() ; i++){
            int to = g[pos][i];
            if (vis[to]) continue;
            vis[to] = true;
            cnt[fa][k]++;
            dfs(to,fa,k+1);
        }
    }
    int main(){
        ios::sync_with_stdio(false);
        cin.tie(0);
        cout.tie(0);
    
        int n,m,k;
        cin >> n >> m >> k;
        for (int i = 1 ; i <= m ; i++){
            int u,v;
            cin >> u >> v;
            for (int j = 0 ; j < k ; j++){
                int u1 = u + j * n;
                int v1 = v + j * n;
                int u2 = u + (j+1) * n;
                int v2 = v + (j+1) * n;
                g[u1].push_back(v2);
                g[v1].push_back(u2);
            }
        }
    
        for (int i = 1 ; i <= n ; i++){
            memset(vis,0,sizeof(vis));
            dfs(i,i,1);
            for (int j = 1 ; j <= k ; j++) cout << cnt[i][j] << " ";
            cout << endl;
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    5621
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者