求助!代码可以通过测试用例却全WA!
查看原帖
求助!代码可以通过测试用例却全WA!
378195
icaijy楼主2022/6/11 21:44
#include <iostream>
using namespace std;

int deep,width,d;
int distance;
int n;
int x,y;
int tree[105][2];
int a,b;
int minW,maxW;
int sf=114514;
int fa1[100],fa2[100];
void diyigewenti(int p){
	d++;
	if (tree[p][0]==0){
		if(d>deep) deep=d;
		return;
	}
	int count=0;
	while (tree[p][count]!=0){
		diyigewenti(tree[p][count]);
		count++;
		d--;
	}
	return;
}

void diergewenti(int p,int f){
	if (tree[p][0]==0){
		return;
	}
	f--;
	if (f<minW) minW=f;
	diergewenti(tree[p][0],f);
	f+=2;
	if (f>maxW) maxW=f;
	if (tree[p][1]!=0) diergewenti(tree[p][1],f);
	
	return;
}

void threeone(int o){
	deep++;
	for (int i=1;i<n-1;i++){
		if (i!=o && tree[i][0]==o){
			fa1[i]=deep;
			threeone(i);
			return;
		}
		else if (i!=o && tree[i][1]==o){
			fa1[i]=deep;
			threeone(i);
			return;
		}
	}
	return;
}

void threetwo(int o){
	deep++;
	for (int i=1;i<n-1;i++){
		if (i!=o && tree[i][0]==o){
			fa2[i]=deep;
			threetwo(i);
			return;
		}
		else if (i!=o && tree[i][1]==o){
			fa2[i]=deep;
			threetwo(i);
			return;
		}
	}
	return;
}

int main(){
	cin >> n;
	for (int i=0;i<n-1;i++){
		cin >> a;
		for (int i=0;i<114514;i++){
			if (tree[a][i]==0){
				cin >> tree[a][i];
				break;
			}
		}
	}
	cin >> x >> y;
	diyigewenti(1);
	cout << deep << '\n';
	deep=0;
	diergewenti(1,0);
	cout << maxW-minW << '\n';
	threeone(x);
	deep=0;
	threetwo(y);
	for (int i=1;i<=100;i++){
		if (fa1[i]!=0 && fa2[i]!=0){
			if (fa1[i]*2+fa2[i]) sf=fa1[i]*2+fa2[i];
		}
	}
	cout << sf << '\n';
	return 0;
}

可以通过题目的测试用例,提交后却全都是WA,请问问题出在哪了?感谢!

2022/6/11 21:44
加载中...