ZOJ - 3805 Machine

来源:互联网 发布:字符数组初始化null 编辑:程序博客网 时间:2024/06/05 09:02

可以看做是简单的二叉树,dfs一下就好了。


#include <iostream>#include <cstdio>#include <algorithm>#include <vector>using namespace std;const int maxn=11000;vector<int> G[maxn];int dfs(int u){    if(G[u].size()==0)        return 1;    if(G[u].size()==1)        return dfs(G[u][0]);    int a=dfs(G[u][0]), b=dfs(G[u][1]);    return max(max(a, b), min(a, b)+1);}int main(){    int n, v;    while(~scanf("%d", &n))    {        for(int i=1; i<=n; i++)            G[i].clear();        for(int i=2; i<=n; i++)        {            scanf("%d", &v);            G[v].push_back(i);        }        printf("%d\n", dfs(1));    }    return 0;}


0 0
原创粉丝点击