单调队列50分WA求助

P1440 求m区间内的最小值

q 里面应该存下标而不是值,不然你怎么判断有没有 $m$ 个。
by Creeper_l @ 2023-12-06 14:41:13


@[xie_T34](/user/846661) 你用队列记录下每个数的下标。 然后这一句:`if(q.size()>=m)q.pop_back();` 改为 `if (i - q.back() + 1 > m) q.pop_back()` 如果你只用队列长度 pop,那么在有些时候队列长度小于 m,但是某些数却不在 i - m ~ i之中。
by emo_male_god @ 2023-12-06 14:44:08


thx,此贴结
by A_R_O_N_A @ 2023-12-07 12:53:06


|