ABC372 Review

ABC372 Review

A

语言基础题

B

类似于二进制拆分,就像跳 LCA 的时候一样,尽可能多地选大的即可。

C

一个位置的字母被改变仅仅会对相邻两个位置之类的答案产生影响,暴力统计即可。

D

对于每一个 \(i\) 去暴力地统计 \(j\) 显然是不可行的,所以可以转而想一想每个 \(j\) 会对答案产生多少个 \(1\) 的贡献。

那么很显然我们要做的就是找到每个 \(j\) 左边最近的第一个比 \(h[j]\) 高的 \(h[i]\) ,显然这符合单调栈的性质,那么我们在维护一个单调栈的同时进行二分查找即可。

E

通过双指针合并两个 vector 即可,注意如果暴力做还是会超时,我们最多只会关心前 \(k\) 大的数,那么每个 vector 一旦超过了 \(k\) 的上限 \(10\) 之后我们就直接跳出维护过程即可。

posted @ 2024-09-22 19:15  Hanggoash  阅读(32)  评论(0)    收藏  举报
动态线条
动态线条end