zoukankan      html  css  js  c++  java
  • Codeforces 115A- Party(DFS)

    A. Party
    time limit per test
    3 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    A company has n employees numbered from 1 to n. Each employee either has no immediate manager or exactly one immediate manager, who is another employee with a different number. An employee A is said to be the superior of another employee B if at least one of the following is true:

    • Employee A is the immediate manager of employee B
    • Employee B has an immediate manager employee C such that employee A is the superior of employee C.

    The company will not have a managerial cycle. That is, there will not exist an employee who is the superior of his/her own immediate manager.

    Today the company is going to arrange a party. This involves dividing all n employees into several groups: every employee must belong to exactly one group. Furthermore, within any single group, there must not be two employees A and B such that A is the superior of B.

    What is the minimum number of groups that must be formed?

    Input

    The first line contains integer n (1 ≤ n ≤ 2000) — the number of employees.

    The next n lines contain the integers pi (1 ≤ pi ≤ n or pi = -1). Every pi denotes the immediate manager for the i-th employee. If pi is -1, that means that the i-th employee does not have an immediate manager.

    It is guaranteed, that no employee will be the immediate manager of him/herself (pi ≠ i). Also, there will be no managerial cycles.

    Output

    Print a single integer denoting the minimum number of groups that will be formed in the party.

    Sample test(s)
    input
    5
    -1
    1
    2
    1
    -1
    
    output
    3
    题意:给一片森林,求当中的树的最大深度。

    爆搜就可以

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    #include <cctype>
    #include <cstdlib>
    #include <set>
    #include <map>
    #include <vector>
    #include <string>
    #include <queue>
    #include <stack>
    #include <cmath>
    #define LL long long
    using namespace std;
    const int INF = 0x3f3f3f3f;
    int n,a[2010],ans,tem;
    void dfs(int u)
    {
    	tem++;
    	if(a[u]==-1)
    		return ;
    	dfs(a[u]);
    }
    void solve()
    {
    	ans=-INF;
    	for(int i=1;i<=n;i++)
    	{
    		tem=0;
    		dfs(i);
    		ans=max(ans,tem);
    	}
    	printf("%d
    ",ans);
    }
    int main()
    {
    	while(~scanf("%d",&n))
    	{
    		for(int i=1;i<=n;i++)
    			scanf("%d",a+i);
    		solve();
    	}
    	return 0;
    }
    


  • 相关阅读:
    网站术语
    移动web开发入门
    Bootstrap研究3基础html元素
    我所理解的jQuery(3)jQuery的构建
    你好,2011
    Bootstrap研究0概述
    Bootstrap研究2布局系统杂记
    我所理解的jQuery(2)谈jQuery的整体设计,驳"侵入性太强"
    winxp等操作系统下数据库文件 迁移到 win7下,附加时发生Error: 5123 的解决方法
    Bootstrap研究1精巧的网格布局系统
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6940924.html
Copyright © 2011-2022 走看看