社区讨论

血和泪的教训,求大佬指教

P2680[NOIP 2015 提高组] 运输计划参与者 5已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@mi6lqjo5
此快照首次捕获于
2025/11/20 06:56
4 个月前
此快照最后确认于
2025/11/20 06:56
4 个月前
查看原帖
我在做倍增预处理时,一开始是这样写的
CPP
for (int i = 2;i <= n;i ++)
            for (int j = 1; j<= lg [ dep [ i ] ];j ++)//lg[]就是log2i
         {
            f [ i ] [ j ] = f [ f [ i ] [ j - 1 ] ] [ j - 1 ] ;
        }
然后只有五十分 辛辛苦苦调了一两小时,交了上十次
忽然发现这样写才是对的
for (int j = 1;(1 << j) <= n;j ++)
CPP
    for (int i = 2;i <= n;i ++)
f [ i ] [ j ] = f [ f [ i ] [ j - 1 ] ] [ j - 1 ] ;
为什么!!!!

回复

7 条回复,欢迎继续交流。

正在加载回复...