社区讨论

萌新看不懂题解

P3632[APIO2011] 寻路参与者 14已保存回复 25

讨论操作

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

当前回复
25 条
当前快照
1 份
快照标识符
@lo9qwi4f
此快照首次捕获于
2023/10/28 15:53
2 年前
此快照最后确认于
2023/11/02 22:37
2 年前
查看原帖
萌新刚接触 OI,看不懂第一篇题解。 他说他的做法是“二分 + SPFA就轻松A了”,我在他的代码中看到了如下片段:
CPP

int Lower(int o,int l,int r,int ql,int qr)
{
    if (ql > qr) return inf;
    if (ql <= l && r <= qr) return Left[o];
    int mid = (l + r) >> 1,ret = inf;
    if (ql <= mid) ret = Lower(o<<1,l,mid,ql,qr);
    if (ret < inf) return ret;
    if (qr > mid) ret = Lower(o<<1|1,mid+1,r,ql,qr);
    return ret;
}

int Upper(int o,int l,int r,int ql,int qr)
{
    if (ql > qr) return 0;
    if (ql <= l && r <= qr) return Right[o];
    int mid = (l + r) >> 1,ret = 0;
    if (qr > mid) ret = Upper(o<<1|1,mid+1,r,ql,qr);
    if (ret) return ret;
    if (ql <= mid) ret = Upper(o<<1,l,mid,ql,qr);
    return ret;
}
不懂就问,这个就是你们说的二分吗?

正经的说我认为该篇题解抄袭了这篇题解,且并没有配上相关讲解甚至有误导倾向,不过这道题确实存在比现在题解区更优的做法,我建议放上这位大佬的题解代替之。

回复

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

正在加载回复...