mx刚学OI,求助玄学问题
查看原帖
mx刚学OI,求助玄学问题
188850
Toorean楼主2025/1/25 13:22

在执行操作 4 时,保留最后的返回值会导致答案随机

int get_num (int cur, int rnk) {
    while (cur) {   
        if (t[ls].siz + 1 == rnk) return t[cur].val;
        if (t[ls].siz + 1 < rnk) rnk -= (t[ls].siz + 1), cur = rs;
        if (t[ls].siz + 1 > rnk) cur = ls;
    }
    return t[cur].val;
}

而如果删去最后一行返回值,结果正确,如下。

int get_num (int cur, int rnk) {
    while (cur) {   
        if (t[ls].siz + 1 == rnk) return t[cur].val;
        if (t[ls].siz + 1 < rnk) rnk -= (t[ls].siz + 1), cur = rs;
        if (t[ls].siz + 1 > rnk) cur = ls;
    }
    // return t[cur].val;
}

最后一行不是对结果没有影响么?

2025/1/25 13:22
加载中...