⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1694.txt

📁 北大ACM题目例程 详细的解答过程 程序实现 算法分析
💻 TXT
字号:


#include"iostream.h"
#include<vector>
#include"stdlib.h"
using namespace std; 
int child[201],need[201];

int ch[201][200];

//int cmp(int i,int j)
int cmp(const void * i,const void * j)

{
	if(need[*((int *)i)]<need[*((int *)j)]) return 1;

	else if(need[*((int *)i)]>need[*((int *)j)]) return -1;

	return 0;
}

void doit(int a)
{
	int i,max;

	for(i=0;i<child[a];i++)
		if(need[ch[a][i]]==-1)doit(ch[a][i]);

	if(i==0){need[a]=1;return;}

	qsort(&ch[a][0],child[a],sizeof(int),cmp);

	max=0;
	for(i=0;i<child[a];i++)
		if(i+need[ch[a][i]]>max)max=i+need[ch[a][i]];

	need[a]=max;
}

int main()
{
	int i,j,n,t,a,node;

	cin>>t;

	while(t--)
	{
		cin>>node;
		for(i=0;i<node;i++)
		{
			cin>>a>>n;

			for(j=0;j<n;j++)
				cin>>ch[a][j];

			child[a]=j;
		}

		for(i=0;i<=node;i++)need[i]=-1;

		doit(1);

		cout<<need[1]<<endl;
	}
return 0;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -