进食后人 | 10 pts 的唐诗错误
查看原帖
进食后人 | 10 pts 的唐诗错误
1313895
CLydq楼主2024/12/27 15:01

我唐完了……交了 11 次

  1. 变量重名:
    如果你的查询写的循环形如 for(int i=1;i<=q;i++) 而且你把倍增 lca 写进了 main 函数,注意变量可能会重名。好像就我犯这种抽象问题了吧
  2. 图的连通性: 图不一定连通,不一定只有一个连通块包含一个以上的点,记得遍历一下所有点,找到和之前点不在一个连通块内的点就要 dfs 一遍。
  3. 最唐的一点倍增维护答案数组的调用:
    我写的是 mn 数组,这里有两个错误:
    • 答案更新是当前答案和要更的答案,也就是 ans = min(ans, min(mn[u][0], mn[v][0])); 而不是 ans = min(mn[u][0], mn[v][0]);lca 末尾更新答案的时候写错了
    • 最唐的一点里最唐的一点末尾更新答案的时候更新的应该是这个点到它的父节点的答案而不是一些奇奇怪怪的东西,我的 WA 代码长这样: ans = min(ans, min(mn[u][u], mn[v][u]));
      是的,我也不知道我为什么写了个 u 上去
2024/12/27 15:01
加载中...