```cpp
for(int i = 20; i >= 0; i--)
if(dep[u] - (1 << i) >= dep[v])
u = fa[u][i];
```
我觉得这边应该是
```cpp
for(int i = 20; i >= 0; i--)
if(dep[fa[u][i]] >= dep[v])
u = fa[u][i];
```
by SofanHe @ 2018-03-24 06:31:44
@[ACの666](/space/show?uid=54745) ↑
by SofanHe @ 2018-03-24 08:46:27
@[多功能的荀彧](/space/show?uid=43931) 改了依然不对qwq
我在运输计划那道题写倍增也炸了,因该是同一个原因
by Gypsophila @ 2018-03-24 11:49:56
@[ACの666](/space/show?uid=54745)
你的倍增LCA好奇怪啊.....
你可以先去过一下[LCA模板题](https://www.luogu.org/problemnew/show/P3379)
```cpp
inline void LCA_init()
{
dep[1] = 1;
dfs(1, -1);
for(int j = 1; (1 << j) <= n; j++)
for(int i = 1; i <= n; i++)
{
fa[i][j] = fa[fa[i][j - 1]][j - 1];
Max[i][j] = max(Max[i][j - 1], Max[fa[i][j - 1]][j - 1]);
sec[i][j] = max(sec[i][j - 1], sec[fa[i][j - 1]][j - 1]);
if(Max[i][j - 1] > Max[fa[i][j - 1]][j - 1]) sec[i][j] = max(sec[i][j], Max[fa[i][j - 1]][j - 1]);
if(Max[i][j - 1] < Max[fa[i][j - 1]][j - 1]) sec[i][j] = max(sec[i][j], Max[i][j - 1]);
}
}
```
by SofanHe @ 2018-03-24 14:06:56
@[多功能的荀彧](/space/show?uid=43931) 关键是我几乎就是按着我过了LCA模板的代码写的。。。
by Gypsophila @ 2018-03-24 22:56:40
你这个.....
你拿[我的代码](https://www.luogu.org/record/show?rid=6002318)去对拍一下吧
by SofanHe @ 2018-03-25 06:33:26
这才是[我的代码](https://www.luogu.org/paste/aq887o9o)
by SofanHe @ 2018-03-25 06:35:28