倍增LCA求助,样例过了但全WA

P4281 [AHOI2008] 紧急集合 / 聚会

@[天空即为极限](/user/530349) `fa[100005][31]` 改成 `fa[500005][20]` 其余地方相应修改(比如dep,还有后面的23 21等等) 还有最后计算式错了 $x$ 应该是最大深度的LCA,而不是最大的LCA(你这smwy(( cout的时候式子好好看看,可能也有点问题 推荐是这样做比较省事(看着长全是复制粘贴( ``` int ans1,val1,ans2,val2,ans3,val3,a; a=LCA(x,y),ans1=a,val1=d[x]+d[y]-2*d[a]+dist(z,a); a=LCA(x,z),ans2=a,val2=d[x]+d[z]-2*d[a]+dist(y,a); a=LCA(y,z),ans3=a,val3=d[y]+d[z]-2*d[a]+dist(x,a); if(val1<=val2&&val1<=val3)printf("%d %d\n",ans1,val1); else if(val2<=val1&&val2<=val3)printf("%d %d\n",ans2,val2); else printf("%d %d\n",ans3,val3); ```
by cinout001_Wii @ 2022-02-04 12:39:38


|