求助家谱树
  • 板块学术版
  • 楼主liuzimingc
  • 当前回复12
  • 已保存回复12
  • 发布时间2021/8/19 10:29
  • 上次更新2023/11/4 10:05:57
查看原帖
求助家谱树
421781
liuzimingc楼主2021/8/19 10:29

RT。

有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。

给出每个人的孩子的信息。

输出一个序列,使得每个人的后辈都比那个人后列出。

我的代码:

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 105;

int n;
vector<int> p[MAXN];
queue<int> Q;
int in[MAXN], out[MAXN];
int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        int x;
        while (cin >> x) {
            if (!x) break;
            else p[i].push_back(x);
            out[i]++; in[x]++;
        }
    }
    for (int i = 1; i <= n; i++)
        if (!in[i]) Q.push(i);
    while (!Q.empty()) {
        int x = Q.front(); Q.pop();
        cout << x << " ";
        for (int i = 0; i < p[x].size(); i++) {
            int y = p[x][i];
            if (!--in[y]) Q.push(y);
        }
    }
    return 0;
}

57pts57\text{pts},求助大佬!

2021/8/19 10:29
加载中...