记录编号 27520 评测结果 AAAAAAAAAA
题目名称 [USACO Nov10] 拜访奶牛 最终得分 100
用户昵称 Gravatarbelong.zmx 是否通过 通过
代码语言 C++ 运行时间 0.070 s
提交时间 2011-09-26 19:04:33 内存使用 1.60 MiB
显示代码纯文本
#include <iostream>
#include <cstdlib>
#include <cstdio>

struct way
{
	int e,pre;
};

int n,i,j,x,y,top;
int la[50001],f[50001][2];
way a[100001];

int max(int x,int y)
{
	if (x>y) return(x);
	else return(y);
}

void dp(int x)
{
	int i;
	f[x][1]=1;
	i=la[x];
	while (i!=0)
	{
		if (f[a[i].e][1]==0) 
		{
			dp(a[i].e);
			f[x][1]+=f[a[i].e][0];
			f[x][0]+=max(f[a[i].e][0],f[a[i].e][1]);			
		}
		i=a[i].pre;
	}
}

int main()
{
	freopen("vacation.in","r",stdin);
	freopen("vacation.out","w",stdout);
	scanf("%d\n",&n);
	top=0;
	for (i=1;i<=n;i++)
	{
		scanf("%d%d\n",&x,&y);
		top++;
		a[top].pre=la[x];
		la[x]=top;
		a[top].e=y;
		top++;
		a[top].pre=la[y];
		la[y]=top;
		a[top].e=x;
	}
	dp(1);
	printf("%d\n",max(f[1][0],f[1][1]));
	return 0;
}