L2-2 小字辈

Posted xyqxyq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L2-2 小字辈相关的知识,希望对你有一定的参考价值。

思路

bfs搜一下。

代码

#include <bits/stdc++.h>
using namespace std;

const int maxn=1e5+10;
vector<int> g[maxn];
int deep[maxn],vis[maxn];

int bfs(int s) {
    int res=-1;
    deep[s]=1;
    queue<int> q;
    q.push(s);
    vis[s]=1;
    while (!q.empty()) {
        int f=q.front();
        res=max(res,deep[f]);
        q.pop();
        for (auto next:g[f]) {
            if (!vis[next]) {
                deep[next]=deep[f]+1;
                vis[next]=1;
                q.push(next);
            }
        }
    }
    return res;
}

int main()
{
    int n,fa,s;
    scanf("%d",&n);
    for (int i=1;i<=n;i++) {
        scanf("%d",&fa);
        if (fa!=-1) {
            g[fa].push_back(i);
        }
        else {
            s=i;
        }
    }
    int maxdp=bfs(s);
    int print=0;
    printf("%d
",maxdp);
    for (int i=1;i<=n;i++) {
        if (deep[i]==maxdp) {
            if (!print) {
                print=1;
            }
            else {
                printf(" ");
            }
            printf("%d",i);
        }
    }
    printf("
");
    return 0;
}

以上是关于L2-2 小字辈的主要内容,如果未能解决你的问题,请参考以下文章

小字辈 (bfs好题)

团体天梯练习 L2-026 小字辈

小字辈

音乐理论音与音高 ( 音区 | 小字一组 | 小字组 | 大字组 )

PTA 7-2 小字辈 (25分)

L2-026. 小字辈