当前位置: 首页 > news >正文

洛谷 P3503 [POI 2010] KLO-Blocks 题解

Solution

双指针做法。

本文中合法子段指一段高度 \(\ge k\) 的连续堆。

观察数据范围,发现 \(O(nm)\) 可过。于是考虑对于每个 \(k\)\(O(n)\) 做一遍。

看到最长子段问题,尝试双指针。设以 \(l\) 为左端点的最长合法子段右端点为 \(r\)。易证 \(l\) 递增时 \(r\) 单调不降。

于是只需要 \(O(1)\) 判断一个区间 \([l,r]\) 是否合法。显然贪心地把左右两边所有木块尽量往这个区间上集中。设 \(pre_i\) 为第 \(1\sim i\) 堆最多能向 \(i+1\) 贡献多少个木块,\(suf_i\) 同理。\(pre,suf\) 均可以 \(O(n)\) 递推处理。

此时 \([l,r]\) 合法等价于 \(pre_{l-1}+suf_{r+1}+\sum_{i=l}^r a_i\le k\cdot (r-l+1)\)。可以 \(O(1)\) 判断。

时间复杂度 \(O(nm)\)

Code

#include <bits/stdc++.h>
#define rept(i,a,b) for(int i(a);i<=b;++i)
#define pert(i,a,b) for(int i(a);i>=b;--i)
#define int long long
using namespace std;
const int N=1e6+5;
int a[N],s[N],pre[N],suf[N],n,m,k,ans;
bool check(int l,int r){return pre[l-1]+suf[r+1]+s[r]-s[l-1]>=k*(r-l+1);
}
signed main(){cin.tie(0)->sync_with_stdio(0);cin>>n>>m;rept(i,1,n) cin>>a[i],s[i]=s[i-1]+a[i];while(m--){ans=0;cin>>k;rept(i,1,n) pre[i]=max(0ll,a[i]+pre[i-1]-k);pert(i,n,1) suf[i]=max(0ll,a[i]+suf[i+1]-k);for(int l=1,r=0;l<=n;++l){while(r<n&&check(l,r+1)) ++r;ans=max(ans,r-l+1);}cout<<ans<<' ';}return 0;
}
http://www.jsqmd.com/news/334807/

相关文章:

  • 社会网络仿真软件:UCINET_(6).中心性与权力分析
  • 多语言 SEO 破局:从零搭建跨语言主题权威性,抢占全球流量
  • 社会网络仿真软件:UCINET_(6).基本网络度量指标
  • 实时渲染 + AI算法:直播美颜SDK中智能美妆的技术架构拆解
  • 基于深度学习的衣物分类识别 AI图像识别技术在衣物分类 短袖衬衫识别 图像数据集
  • 2026武汉临空改善型住宅及商铺推荐榜低密现房优享 - 资讯焦点
  • 高性能直播美颜sdk开发方案:智能美妆算法如何兼顾效果与性能?
  • 日程
  • 财务发票报销审核严?AI自动查合规性,不合规一键退回
  • 销售客户需求记不住?RPA自动存需求,后续推荐更精准
  • 社会网络仿真软件:UCINET_(4).数据准备与导入
  • 宏智树 AI:问卷设计还在 “凭经验凑题”?AI 让 “无效调研” 变 “数据金矿”!
  • 宏智树 AI 封神!学术 PPT 不用熬:开题 / 答辩 / 汇报 30 分钟速成
  • 社会网络仿真软件:UCINET_(5).网络可视化技术
  • 宏智树 AI 太懂论文党!零代码搞定数据分析,小白也能写硬核实证
  • 宏智树 AI:课程论文不用 “凑字数”,新手也能写出 “导师夸爆” 的学术感
  • 用 eBPF 给 PF_PACKET 套接字做“多路分发”(C/C++代码实现)
  • 计算机SSM毕设实战-基于ssm的生产设备信息管理系统的设计与实现设备档案管理、维修记录管理【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 社会网络仿真软件:UCINET_(3).UCINET安装与配置
  • 宏智树 AI:破解论文 “查重红 + AI 痕” 双重困境,学术优化原来这么简单!
  • SSM毕设项目:基于ssm的高校学生宿舍线上管理系统(源码+文档,讲解、调试运行,定制等)
  • Flutter for OpenHarmony 实战:投票管理系统完整开发指南
  • CSS Grid 实现经典双栏布局
  • 终于有人愿意把 SPC 精益本质讲透了
  • Java面向对象——何为面向对象
  • SSM毕设项目:基于ssm的生产设备信息管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 宏智树 AI:把期刊论文写作变成 “拆盲盒”,新手也能开出 “录用惊喜”
  • SSM计算机毕设之基于ssm的生产设备信息管理系统的设计与实现基于Java+SSM的生产设备信息管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • GB 16776-2025 建筑用硅酮结构密封胶检测
  • 到底什么是企业采购数字化转型?——协同型 SRM 才是关键