测试点2-6WA了,不知道为什么,希望有人能帮忙看看
查看原帖
测试点2-6WA了,不知道为什么,希望有人能帮忙看看
685943
fanshukai楼主2022/7/5 12:36
#include<bits/stdc++.h>
using namespace std;
int a[110][110],b[110];
int main(){
	int n,u,v,x,y,deep=0,wide=0,temp;
	cin>>n;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	a[i][j]=100000;
	for(int i=1;i<n;i++)
	{
		cin>>u>>v;
		a[u][v]=1;
		a[v][u]=2;
		a[i][i]=0;
	}
	a[n][n]=0; //初始化 
	
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	for(int k=1;k<=n;k++)
	if(i!=j&&a[i][j]>a[i][k]+a[k][j])
	a[i][j]=a[i][k]+a[k][j];//Floyed 
	
	for(int i=2;i<=n;i++)
	deep=max(deep,a[1][n]);//枚举1到各个点的距离,最后加1输出 
	
	for(int i=1;i<=n;i++)//枚举每一层深度 
	{
		temp=0;
		for(int j=1;j<=n;j++)
		{
			if(a[1][j]+1==i)
			temp++;
		}
		wide=max(temp,wide);
	}
	cin>>x>>y;
	cout<<deep+1<<endl;
	cout<<wide<<endl;
	cout<<a[x][y]<<endl;
	return 0;
} 
2022/7/5 12:36
加载中...