W.C.
2025-02-03 14:38:01
发布于:上海
#include<algorithm>
#include<iostream>
#include<vector>
#include<queue>
#include<array>
int n,x,y;std::array<std::vector<uint32_t>,200001>map;std::array<uint32_t,200001>answer;
class Computer{
public:
template<class type>
char isEqual(const type&first,const type&second)const{
return first==second;
}
template<class type>
void equal(type &first,const type &second)const{
first = second;
return ;
}
template<typename type>
type plus(const type& first,const type& second)const{
return static_cast<type>(first+second);
}
};
void DepthFirstSearch(uint32_t now,uint32_t bef=0ul,uint32_t val=0ul){
::Computer computer;
::answer.at(val)=now;
if(now==y){
for(int i(0);i<=val;++i)printf("%d ",::answer.at(i));
exit(0);
}
for(uint32_t i:map.at(now)){
if(computer.isEqual(bef,i))continue;
DepthFirstSearch(i,now,computer.plus(val,1u));
}
}
int main(){
::std::ios::sync_with_stdio(0);
::std::cin>>::n>>::x>>::y;
for(int i(1),u,v;i<::n;++i){
std::cin>>u>>v;
::map.at(u).push_back(v),::map.at(v).push_back(u);
}
DepthFirstSearch(x,0);
return 0;
}
这里空空如也
有帮助,赞一个