比赛 不平凡的世界 评测结果 AWWWWTTTTT
题目名称 不平凡的许愿树 最终得分 10
用户昵称 Cydiater 运行时间 29.170 s
代码语言 C++ 内存使用 147.36 MiB
提交时间 2015-11-05 10:38:33
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <ctime>
#include <string>
#include <iomanip>
#include <cstdlib>
#include <algorithm>
using namespace std;
int map[6000][6000],m,n,id[20000],tmp=0;
bool flag[10110101];
void init()
{
	cin>>m;
	memset(map,10,sizeof(map));
	memset(id,0,sizeof(id));
	for(int i=1;i<m;i++)
	{
		int xx,yy;
		cin>>xx>>yy;
		map[xx][yy]=1;
		map[yy][xx]=1;
		id[xx]++;	id[yy]++;
	}
	n=m;m--;
	for(int i=1;i<=n;i++)
		map[i][i]=0;
}
void work()
{
	memset(flag,0,sizeof(flag));
	for(int k=1;k<=n;k++)
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				if(map[i][k]+map[k][j]<map[i][j])
					map[i][j]=map[i][k]+map[k][j];
	/*for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			cout<<map[i][j]<<' ';
		cout<<endl;
	}*/
	for(int k=1;k<=n;k++)
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				if(map[i][j]==map[i][k]&&map[i][j]==map[k][j]&&flag[i+j+k]==0&&i!=j&&j!=k&&i!=j)
				{
					tmp++;
					tmp%=100000;
					flag[i+j+k]=1;
				}
					
}
int main()
{
	freopen("hopetree.in","r",stdin);
	freopen("hopetree.out","w",stdout);
	init();
	work();
	cout<<tmp%338+1<<' '<<(tmp+233)%388+1<<endl;
	//cout<<"Time has passed:"<<1.0*clock()/1000<<"s!"<<endl;
	return 0;
}