灵异线段树
  • 板块学术版
  • 楼主lzy20091001
  • 当前回复25
  • 已保存回复25
  • 发布时间2024/8/5 20:47
  • 上次更新2024/8/5 21:36:44
查看原帖
灵异线段树
932039
lzy20091001楼主2024/8/5 20:47

我的 query():

int query(int u, int l, int r)
{
    if (l <= arr[u].l && arr[u].r <= r)
        return arr[u].w;
    else
    {
        int mid = (arr[u].l + arr[u].r) / 2, res = 0;
        if (l <= mid)
            res = Max(res, query(2 * u, l, r));
        if (r > mid)
            res = Max(res, query(2 * u + 1, l, r));
        return res;
    }
}

标程的 query()

int query(int p, int x, int y)
{
    if (arr[p].l == x && arr[p].r == y)
        return arr[p].w;
    else
    {
        int mid = (arr[p].l + arr[p].r) / 2;
        if (mid < x)
            return query(2 * p + 1, x, y);
        else if (mid >= y)
            return query(2 * p, x, y);
        else
            return Max(query(2 * p, x, mid), query(2 * p + 1, mid + 1, y));
    }
}

结果是我获得 WA 0 分好成绩,请问这两个有什么区别?

2024/8/5 20:47
加载中...