#23490: bfs 可以嗎 對70% 後tle


10755080@st.chjhs.tp.edu.tw (林鼎陽)

學校 : 不指定學校
編號 : 101584
來源 : [150.116.48.65]
最後登入時間 :
2022-01-10 01:11:57
b967. 4. 血緣關係 -- 2016年3月apcs | From: [180.217.35.234] | 發表日期 : 2020-11-22 10:21

#include <bits/stdc++.h>

using namespace std;



int main(){
int pn;
while(cin>>pn){
	vector<int>p[pn];
	int tem;
	int temp;
	for(int sdf=0;sdf<pn-1;sdf++){
		cin>>tem;
		cin>>temp;
		p[tem].push_back(temp);
			p[temp].push_back(tem);
	}
	vector<int>ch;
	for(int erf=0;erf<pn;erf++){
		if(p[erf].size()==1){ch.push_back(erf);
		}
	}
	vector<int>check;
	int start;int co=0;
	int went[pn];
	int br=0;
	vector<int>check2;
	int big=0;
	for(int e=0;e<ch.size()-1;e++){
		check.push_back(ch[e]);
		for(int yui=0;yui<pn;yui++){
			went[yui]=0;
		}
		co=0;
		went[ch[e]]=1;
		while(true){
			br=0;
			for(int i=0;i<check.size();i++){
				for(int j=0;j<p[check[i]].size();j++){
					if(went[p[check[i]][j]]==0){
						went[p[check[i]][j]]=1;
						br=1;
					//	another check push back.
					check2.push_back(p[check[i]][j]);
					}
				}

			}
						check.clear();
			if(br==0)break;
			co++;

			for(int wert=0;wert<check2.size();wert++){
                check.push_back(check2[wert]);
			}
			check2.clear();
		}

	if(co>big){big=co;}

	}


	cout<<big<<endl;
}

}
 
ZeroJudge Forum