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

重生之二分我再也不敢乱用 lower_bound 了 [USACO23OPEN] Milk Sum S

[USACO23OPEN] Milk Sum S

重生之我再也不敢乱用 lower_bound 了.

显然看到这种套路题目首先复制一个数组, 然后排序前缀和初始化答案. 查找数字的位置直接在排序完后的数组上二分即可.

#include<iostream>
#include<algorithm>
#define P(A) A=-~A
typedef long long LL;
#define NUMBER1 150000
#define NUMBER2 100000000
LL pre_ans(0);
int n,a[NUMBER1+5],b[NUMBER1+5];
LL sum[NUMBER1+5];
signed main(){std::cin.tie(nullptr)->std::ios::sync_with_stdio(false);std::cout.tie(nullptr);std::cin>>n;for(int i=1;i<=n;P(i)){std::cin>>a[i];b[i]=a[i];}std::sort(b+1,b+1+n);for(int i=1;i<=n;P(i)){pre_ans+=1ll*i*b[i];sum[i]=sum[i-1]+b[i];}
}

我们设 \(p_1\)\(a[i]\) 在排序后数组的位置, \(p_2\)\(j\) 在排序后数组的位置. 显然必有:

p1=std::lower_bound(b+1,b+1+n,a[i])-b;
p2=std::lower_bound(b+1,b+1+n,j)-b;

然后我们开始分情况讨论, 当 \(p_1=p_2\) 时, 直接替换即可

if(p1==p2)std::cout<<pre_ans+1ll*p1*(j-a[i])<<'\n';

\(p1>p2\) 时, 显然对于初始化的 \(ans\) 而言, 从 \([p_2,p_1-1]\) 的数都要往右移动一位, 然后正常替换即可, 那么则有:

if(p1>p2)std::cout<<pre_ans-1ll*p1*a[i]+sum[p1-1]-sum[p2-1]+1ll*p2*j<<'\n';

同样, 当 \(p1<p2\) 时, 显然对于初始化的 \(ans\) 而言, 从 \([p_1+1,p_2]\) 的数都要往右移动一位, 然后正常替换即可, 那么则有:

std::cout<<pre_ans-1ll*p1*a[i]+1ll*p2*j+sum[p1]-sum[p2]<<'\n';

然后根据样例而言:

5
1 10 4 2 6
3
2 1
2 8
4 5

你会发现应该输出:

55
81
98

结果输出:

55
81
97

实际上是 lower_bound 出问题了. 因为 lower_bound 当没找到相等的数时, 会自然而然跳到下一位.
下面我们将详细讲述 \(p_2\) 跳到下一位的影响.

\(p_1=p_2\) 时, 当 \(j=b_{p_1}\) 显然成立, 不用讨论. 但若 \(j=\ne b_{p_2}\) 时, 则有 \(b_{p_2}>j\geq b_{p_2-1}\), 我们将 \(b_{p_2}\) 替换为 \(j\) 显然满足单调性. 此时 \(p_2\) 的越位是 有必要的.

\(p_1>p_2\) 时, 我们的要求是把 \(b_{p_1}\) 删了, 显然答案减去 \(p_1b_{p_1}\), 由于 \(b\) 是不严格单调递增的 , 所以必有 \(b_{p_2}\geq j\), 所以我们要把 \([p_2,p_1-1]\) 向右移动一位, 然后把 \(j\) 放进去, 此时答案加上 \(p_2j+sum_{p_1-1}-sum_{p_2-1}\).

\(p_1<p_2\) 时, 我们的要求是把 \(b_{p_1}\) 删了, 显然答案减去 \(p_1b_{p_1}\), 由于 \(b\) 是不严格单调递增的 , 所以必有 \(b_{p_2}\geq j\). 我们把 \(p_1\) 删了后, 如果 \(b_{p_2}>j\) 时, 为了维持不严格单调递增, 我们只能往 \(p_2\) 的左边加 \(j\). 即如果我们发现 \(b_{p_2}\ne j\) 时, 自动把 \(p_2\) 向左移一位, 然后加上 \(p_2j\), 减去 \(sum_{p_2}-sum_{p_1}\).

所以代码应该这么写:

else{if(b[p2]!=j)--p2;std::cout<<pre_ans-1ll*p1*a[i]+1ll*p2*j+sum[p1]-sum[p2]<<'\n';
}

代码:

#include<iostream>
#include<algorithm>
#define P(A) A=-~A
typedef long long LL;
#define NUMBER1 150000
#define NUMBER2 100000000
LL pre_ans(0);
int n,a[NUMBER1+5],b[NUMBER1+5];
LL sum[NUMBER1+5];
signed main(){std::cin.tie(nullptr)->std::ios::sync_with_stdio(false);std::cout.tie(nullptr);std::cin>>n;for(int i=1;i<=n;P(i)){std::cin>>a[i];b[i]=a[i];}std::sort(b+1,b+1+n);for(int i=1;i<=n;P(i)){pre_ans+=1ll*i*b[i];sum[i]=sum[i-1]+b[i];}int q;std::cin>>q;for(int i,j,p1,p2;q--;){std::cin>>i>>j;p1=std::lower_bound(b+1,b+1+n,a[i])-b;p2=std::lower_bound(b+1,b+1+n,j)-b;if(p1==p2)std::cout<<pre_ans+1ll*p1*(j-a[i])<<'\n';else if(p1>p2)std::cout<<pre_ans-1ll*p1*a[i]+sum[p1-1]-sum[p2-1]+1ll*p2*j<<'\n';else{if(b[p2]^j)--p2;std::cout<<pre_ans-1ll*p1*a[i]+1ll*p2*j+sum[p1]-sum[p2]<<'\n';}}return 0;
}
http://www.jsqmd.com/news/70829/

相关文章:

  • t-SNE高效使用指南与常见误区解析
  • 国内商标转让平台哪家好?2025年3大靠谱平台推荐清单amp;避坑攻略 - 资讯焦点
  • 2025年防爆弯头铸钢4分6分批发厂家推荐榜单:防爆铸钢接线盒‌/防爆铸钢穿线盒‌/防爆穿线盒源头厂家精选 - 品牌推荐官
  • 江苏的中医师承班哪家好?阿虎医考师承实测体验 - 资讯焦点
  • 2025年机场广告品牌口碑榜:十大优选品牌深度解析,电梯门贴广告/影院广告/电梯视频广告/社区门禁广告/社区道闸广告机场广告公司找哪家 - 品牌推荐师
  • PostgreSQL 19:超高速聚合的全新突破
  • .NET 10 通俗解读:微软跨平台开发框架的重磅升级
  • 2026年北京继承纠纷律师推荐排名榜:胜诉率与专业解决方案深度解析 - 苏木2025
  • Postman测试Excel导入、导出
  • 2025年12月呼和浩特电线电缆故障检修/测漏水/管道维修/暖气片更换/消防管道测漏水服务公司技术实力综合评估 - 2025年11月品牌推荐榜
  • 2025年贵金属焚烧炉厂家权威推荐榜单:广东事故车报废电池组回收/广东大巴车电池组回收/广东退役汽车电池组回收供货服务商精选 - 品牌推荐官
  • GL980/GL2000/GL7000/USB蓝牙冷链温度记录仪选购指南:优质品牌、口碑厂家及供应商推荐 - 品牌推荐大师
  • 国标GB28181算法算力平台EasyGBS港口智能化监控解决方案
  • GRAPHTEC日本图技GL260A-CN代理商厂家信息、电话、联系信息分享 - 品牌推荐大师
  • 2025年行业内知名的金属探测门品牌推荐,目前评价好的金属探测门推荐10年质保有保障 - 品牌推荐师
  • 露卡菲娅祛斑套装:美白不刺激停用不反黑,坚守精准靶向不伤肤 - 资讯焦点
  • 全国中医师承班哪家好?——来自江苏学员首推阿虎医考师承 - 资讯焦点
  • GL260A-CN温度记录仪/GL260A日本图技GL860A-HP/品牌与厂家深度测评:2家口碑优选品牌+靠谱供应商资源+全行业解决方案 - 品牌推荐大师
  • MATLAB R2024a:最新版本下载安装教程数据科学与自动化的强力工具
  • JetBrains IDE 2025.3 (macOS, Linux, Windows) - 跨平台开发者工具
  • C++ 数组初始化注意事项
  • 2025年全自动一体化泵站工厂推荐榜单:玻璃钢一体化泵站‌/一体化消防泵站‌/一体化地埋式泵站源头工厂精选 - 品牌推荐官
  • 就医160 健康160 APP上如何用医保卡挂号支付
  • 2025年用户推荐的/质量好的纳米粒度分析仪厂家/信誉好的智能激光粒度分析仪生产厂家 - 品牌推荐大师1
  • 2025年12月实验室规划设计公司实力推荐:涵盖实验台、通风柜、实验室装修及整体建设一站式服务,专业高效安全可靠 - 深度智识库
  • 完整教程:数据库知识整理——SQL数据查询(2)
  • 【2025】碳纤维卡规知名企业有哪些?哪个厂家质量好?碳纤维卡规推荐品牌/推荐厂家/知名公司/推荐企业 - 品牌推荐大师1
  • 抖音买单服务商申请指南 - 阿里AI专家
  • 义乌婚纱摄影优选|罗亚摄影官方联系方式全汇总,幸福影像咨询一站直达 - charlieruizvin
  • 邮件营销工具排行榜及使用评价 - U-Mail邮件系统