我真觉得这世界奇迹了,md,受不鸟了,这为什么啊,为什么啊????
我以第一篇题解为AC版本:
避免帖子太长就放链接了
答案Ans数组是从第三次dfs中取出来的,有这样一句话:if(d[rt[x]]) Ans[x]=t[rt[x]];,我把这句话搬到了最后的输出,避免了在代码里再开一个Ans数组,也就是:
for循环
if(d[rt[i]]) cout<<t[rt[x]]<<endl;
else cout<<0<<endl;
然后就只有35了
下了一个点,fc了一下差之毫厘,其中一行与正确答案不符,我看了半个下午也没看出来是为什么
按理来讲,如果与最后应有的答案不符,那么就只有一种可能,t[rt[x]]在dfs之后遭到了修改,但是merge函数中,它作为其中的参数b,除了将数据传给a之外就没有其他任务了,上哪改???上哪改?????
麻了,楼主是傻逼根本看不出来哪有问题,求求大家的帮助