目前思路为以每个节点为根,跑一遍,通过LCA找公共祖先转移
if(!Size[i][j]) { ll op=LCA(i,j); Size[i][j]=Size[j][i]=Size[i][op]+Size[op][j]; Gcd[i][j]=Gcd[j][i]=__gcd(Gcd[i][op],Gcd[op][j]); } //cout<<i<<" "<<j<<" "<<Size[i][j]<<endl; ans=(ans+Size[i][j]*Gcd[i][j]%mod)%mod;
但是会炸,而且目前样例过0分,求正确解法 or 优化