比赛 不平凡的世界 评测结果 AAAAATTTEE
题目名称 不平凡的许愿树 最终得分 50
用户昵称 slyterlins 运行时间 17.645 s
代码语言 C++ 内存使用 95.67 MiB
提交时间 2015-11-05 11:37:44
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<queue>
using namespace std;
int f[5000][5000];
long long m,n,ans;
int main(){
	freopen("hopetree.in","r",stdin);
	freopen("hopetree.out","w",stdout);
	cin>>n;
    for(int k=1;k<=n;k++)
	   for(int i=1;i<=n;i++){
	   f[k][i]=1000000;
	   if(k==i)f[i][i]=0;
	   }
	  	for(int i=1;i<n;i++){
		int a,b;
		cin>>a>>b;
		f[a][b]=1;
		f[b][a]=1;
	}


	for(int k=1;k<=n;k++)
	   for(int i=1;i<=n;i++)
	      for(int j=1;j<=n;j++)
	       if(f[i][j]>f[i][k]+f[k][j]&&i!=k&&k!=j)f[i][j]=f[i][k]+f[k][j];
/*	  for(int k=1;k<=n;k++){
	   for(int i=1;i<n;i++)
        cout<<f[k][i];
         cout<<f[k][n]<<endl;
 }*/
    
    for(int k=1;k<=n;k++)
	   for(int i=1;i<=n;i++)
	      for(int j=1;j<=n;j++)
	      if(f[i][j]==f[i][k]&&f[i][k]==f[j][k]&&f[j][k]!=1000000&&f[j][k]!=0){
		  ans++;
		  }
	      ans/=6;
	      cout<<ans%338+1<<' '<<(ans+233)%338+1;
	      return 0;
}