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 @   Hanggoash  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
历史上的今天:
2022-09-22 Test 2022.09.22
动态线条
动态线条end
点击右上角即可分享
微信分享提示