一个关于越界的疑惑
查看原帖
一个关于越界的疑惑
684254
Rain_chr楼主2024/1/3 15:22

我一开始入队写的是:

while(q.size()&&i<lt[q.back()]&&w(q.back(),lt[q.back()])>=w(i,lt[q.back()])) q.pop_back();

结果WA了,我一看题解,题解是这么写的:

while(q.size()&&w(q.back(),lt[q.back()])>=w(i,lt[q.back()])) q.pop_back();

很容易发现,我多判了i<lt[q.back()],但如果不判,那么i就在lt[q.back()]后面,不能转移到lt[q.back()]。也就是说,可能会有不合法的转移,并且这个转移不一定比队尾劣,那这样的话,不合法的i就可能把合法的队尾踢出去。

难道这样不会有问题吗?求大佬解答

顺便at题解作者 @AThousandSuns

2024/1/3 15:22
加载中...