牛客小白月赛86
B 水平考试
======
等价于两个集合
- 若存在则输出 0;
- 否则输出 10。
时间复杂度:
C题:区间查询当前区间可以被分为多少段,要求每段只有一种数字。
做法1:提前对所有段编号,查询时直接左右边界编号相减,注意边界需要特别处理
做法2:标记第i段与第i+1段之间的分界点,然后求前缀和,本质上和做法1一样
D题:给定网格,0表示障碍,1表示道路。问有多少块长方形道路?(正方形也是长方形)
对此我们首先用过bfs找到连通块,对于每个连通块我们需要维护这个连通块最大x,y坐标,
最小x,y坐标,以及连通块大小。当连通块是矩形的时候通过
统计矩形的(minX, minY) -> (maxX, maxY)
然后判断 (maxY - minY + 1) * (maxX - minX + 1) == 连通图的大小
E题:带容量下限的最大连续子数组和
简单无脑做法:
- 枚举每个起点,他的终点是j到n的任意一点。j是从左到右第一个满足当前区间容量大于W的坐标,对于这一过程我们显然需要维护容量的前缀和然后二分。我们希望价值最大,在终点到n中,我们需要找到最大的前缀和,因为起点被我们枚举从而固定,对此我们提前预处理后缀最大前缀和。
标程做法:首先枚举左端点,然后根据 的限制求解出右端点的最小值(双指针递推),记为 。
那么此时问题转变为:以
时间复杂度:
__EOF__

本文作者:爱飞鱼
本文链接:https://www.cnblogs.com/mathiter/p/17994274.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/mathiter/p/17994274.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】