由于python超时了四五个点,所以用C++写了一下
AC代码
#include#include using namespace std; #define N 500010 int n,m,s; int vis[N],far[N][20],dep[N]; vector point[N]; void dfs(int root,int deep){ dep[root]=deep; vis[root]=1; for(int i=0;i =0;i--){ if( (dep[x]-(1<=dep[y] ) x=far[x][i]; } if(x==y) return x; for(int i=19;i>=0;i--){ if(far[x][i]!=0 && far[x][i]!=far[y][i]){ x=far[x][i]; y=far[y][i]; } } return far[x][0]; } int main(){ int x,y; cin>>n>>m>>s; for(int i=0;i



