比赛 不平凡的世界 评测结果 AAAAAETETT
题目名称 不平凡的许愿树 最终得分 50
用户昵称 fyb 运行时间 21.613 s
代码语言 C++ 内存使用 94.44 MiB
提交时间 2015-11-05 11:51:36
显示代码纯文本
#include <cstdio>
#include <vector>

using namespace std;

#define NMAX 5000
#define INF 10000
#define P 338

short d[NMAX+1][NMAX+1];

int main(){
	int n;
	int tu,tv;
	int ans=0;
	int i,j,k;

	freopen("hopetree.in","r",stdin);
	freopen("hopetree.out","w",stdout);

	scanf("%d",&n);

	for(i=0;i<=n;i++)
		for(j=0;j<=n;j++)
			d[i][j]=INF;

	for(i=1;i<n;i++){
		scanf("%d%d",&tu,&tv);
		d[tu][tv]=d[tv][tu]=1;
	}



	for(k=1;k<=n;k++)
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				if(d[i][k]+d[k][j]<d[i][j])d[i][j]=d[i][k]+d[k][j];

	for(i=1;i<=n;i++)
		for(j=i+1;j<=n;j++)
			for(k=j+1;k<=n;k++)
				if(d[i][j]==d[i][k]&&d[i][j]==d[j][k])
					ans=(ans+1)%P;
	printf("%d %d\n",ans%P+1,(ans+233)%P+1);
	return 0;
}