PrincessQi @ 2021-08-18 14:48:10
for(int i=1;i<=n;i++)
for(int j=1;j<=30;j++);
这份代码的复杂度是
但
void dfs(int x,int fa){
d[x]=d[fa]+1;
f[x][0]=fa;
for(int i=1;i<=30;i++)
f[x][i]=f[f[x][i-1]][i-1];
for(int i=beg[x];i;i=nex[i]){
int y=to[i];
if(y!=fa)
dfs(y,x);
}
}//这是对于一棵树的倍增预处理
这份代码的复杂度是
所以我突然迷惑了,有无神仙解答一下
by whiteqwq @ 2021-08-18 14:52:23
为啥第一份代码的复杂度是
顺便膜拜金钩佬
by fjy666 @ 2021-08-18 14:52:27
by PrincessQi @ 2021-08-18 14:53:55
@Verdandi 为啥不是啊 30的常数就不是常数了吗
by PrincessQi @ 2021-08-18 14:54:39
难道说 我们平时写的 LCA 都是
by jerry3128 @ 2021-08-18 14:55:25
对于常数和复杂度的区别:下面那个
by PrincessQi @ 2021-08-18 14:55:54
@qwaszx 假设我只循环到了30
by whiteqwq @ 2021-08-18 14:55:59
@PrincessQi
事实上只要你
by qwaszx @ 2021-08-18 14:56:59
@PrincessQi 那确实
by PrincessQi @ 2021-08-18 14:57:06
就是说
by jyttoby @ 2021-08-18 14:59:04
@PrincessQi 那就
是