L2-026 小字辈

作者: smatrcHendsa | 来源:发表于2019-03-17 09:21 被阅读0次

裸的DFS
比赛的时候没想出来 血亏 后面用stack写了个
https://pintia.cn/problem-sets/994805046380707840/problems/994805055679479808

#include <stdio.h>
#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <sstream>
#include <algorithm>
int N, M;
//const int MAXN = , MAXM = 0;
//typedef long long ll;
const int si =100000;
using namespace std;
int par[si];
int rankk[si];

vector<int> v;
stack<int> stk;
int maxx = 0;

void solve(int rt) {
    int p = rt;
    
    while (!rankk[p]) {
        stk.push(p);
        p = par[p];
    }

    int it = rankk[p];
    int x = 1;
    while (!stk.empty()) {
        x = stk.top(); stk.pop();
        rankk[x] = ++it;
    }
    maxx = max(rankk[x], maxx);
}
int main() {
    cin >> N;
    int rt = 0;
    for (int i = 1; i <= N; i++) {
        scanf("%d", &par[i]);
        if (par[i] == -1) rt = i;
    }
    
    //solve
    rankk[rt] = 1;
    for (int i = 1; i <= N; i++) {
        solve(i);
    }
    

        //output
    for (int i = 1; i <= N; i++) {
        if (rankk[i] == maxx)
            v.push_back(i);
    }
    cout << maxx << endl;
    for (int i = 0; i < v.size() - 1; i++) {
        printf("%d ", v[i]);
    }
    printf("%d", v[v.size() - 1]);
    cout << endl;
    return 0;
}

相关文章

  • L2-026 小字辈

    裸的DFS比赛的时候没想出来 血亏 后面用stack写了个https://pintia.cn/problem-se...

  • 如何撕掉职场中的便利贴身份

    职场中特别容易变成小字辈,“小张、小王、小钱”,如果你是新人,那就更加会被贴上小字辈的名牌。 然后你就开始端茶倒水...

  • 【小字辈杀手】

    微信弹出一条消息,【有人添加您为好友】,点了同意,对面直接开撩, “小姐姐,你真可爱……” 我一脸懵逼,有种喝断片...

  • 【读书】小字辈的书

    小字辈的书很多,这里的小字辈并不是给小辈读的书,而是书名带小字的书,比如畅销全球的《小王子》、世界名著《小妇人》、...

  • 小字辈的前言

    小字辈这里想写的就自己的故事,每天很多秘密没法写下来,好难过噢,所以小字辈打算都写下来(下面全文简称小字)。 人如...

  • 小字辈的后语

    就这样,他们一点一点接近,小字值班他陪我,他值班小字陪他,差不多天天在外面吃,同事之间都开始流传,室友也开始讲小字...

  • 几个小字辈的婚恋情况

    近日跟家里的领导聊天,谈到了她们家几个小不点儿的婚姻问题,感慨良多。领导在家老小,上有四姐一哥,现在各个小字辈都长...

  • 跑起来,只需要给自己一个理由

    你是咸鱼吗? 小明,30岁,和应届毕业生们抢着小字辈的头衔,被老XX们呼来喝去的叫着小明,...

  • 【1222读书清单】李不帅

    《故事思维》 001 我叫李小龙,出生在一个镇上,我是小字辈,镇名字中有个龙,所以我叫李小龙。 002...

  • 嗨!美女

    行走江湖,人总要有个称呼。 小字辈的:小张,小李,小王 老字辈的:老张,老王,老李 大字辈的:大张,大王,大李 家...

网友评论

    本文标题:L2-026 小字辈

    本文链接:https://www.haomeiwen.com/subject/tbuymqtx.html