news 2026/8/13 23:48:33

前缀和算法差分算法(5)——思维提升

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前缀和算法差分算法(5)——思维提升

1.5 思维提升

本节的题目都有一定难度,是算法的提升训练,可以选择不做

1.5.1 P10837 云音泛

这道题可以这么想:将一个花的时间改变,就可以将这朵花移到无穷远处没有花栽种的时间,这样的收益总会是最大的。

那么,如何找到收益最大的一朵花呢?要使收益最大,首先要弄清楚收益的来源。一朵花移到无穷远处,增加的符合题目要求的时间增加的来源是什么?不难想到,原先有且只有两朵花开放的时间就变成了只有一朵花开放。

这样,问题就转变为了:找到一个长度为mmm的区间,使其中有且只有两朵花开放的时间点最多。

因为数字总量较少,所以可以使用离散化解决空间问题,这就不用考虑了。接下来需要思考如何找到有且只有两朵花开放的时间。在O(n)O(n)O(n)的时间范围内,这一章学到的差分算法无疑是最佳选择。用差分计算出每个时间点有多少花开。

完成之后,接下来需要考虑的是如何统计这些区间中有多少222,这就需要一些做题经验了,建议仔细思考。

答案是使用前缀和算法。pre[i]pre[i]pre[i]表示前iii个数中有多少222,这样问题就迎刃而解了。最后的难点在于离散化。离散化虽然不在普及组的大纲中但是也非常建议掌握。通过离散化可以简化不少数据大而数量少的题目。

代码位置:1\problems\P10837.cpp

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;#define_for(i,n)for(inti=0;i<n;i++)#define_rep(i,a,b)for(inti=a;i<b;i++)#defineendl'\n'constintmaxn=2e5+10;;ll xs[maxn*3];intdiff[maxn*3];// 区间结构体structseg{ll l,r;intcnt;}s[maxn*3];ll pre1[maxn*3],pre2[maxn*3];pair<ll,ll>rose[maxn];inttotx,tots;intn;ll m;intfindl(ll x){intl=0,r=tots;while(l<r){intmid=(l+r)>>1;if(s[mid].l>=x)r=mid;elsel=mid+1;}returnl;}intfindr(ll x){intl=0,r=tots;while(l<r){intmid=(l+r)>>1;if(s[mid].r<=x)l=mid+1;elser=mid;}returnl-1;}intmain(){ios::sync_with_stdio(0);cin.tie(0);cin>>n>>m;totx=0;_for(i,n){ll t;cin>>t;ll l=t;ll r=t+m-1;rose[i].first=l;rose[i].second=r;xs[totx++]=l;xs[totx++]=r+1;}// 离散化排序去重sort(xs,xs+totx);totx=unique(xs,xs+totx)-xs;memset(diff,0,sizeof(diff));_for(i,n){ll l=rose[i].first;ll r=rose[i].second;intpl=lower_bound(xs,xs+totx,l)-xs;intpr=lower_bound(xs,xs+totx,r+1)-xs;diff[pl]++;diff[pr]--;}ll ans0=0;intcur_cnt=0;tots=0;_for(i,totx-1){cur_cnt+=diff[i];ll l=xs[i];ll r=xs[i+1]-1;if(l>r)continue;s[tots].l=l;s[tots].r=r;s[tots].cnt=cur_cnt;ll len=r-l+1;if(cur_cnt==1)ans0+=len;tots++;}// 预处理前缀和pre1[0]=0;pre2[0]=0;_for(i,tots){pre1[i+1]=pre1[i];pre2[i+1]=pre2[i];ll len=s[i]
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/13 23:47:24

泉州网站建设哪家好:揭秘那些被忽略的关键指标与避坑指南

在泉州这座拥有千年海丝历史的城市,商业氛围日益浓厚,越来越多的企业家和创业者意识到,一个专业的网站不仅是企业的数字名片,更是连接全球客户、提升品牌形象的重要阵地。然而,当大家面对“泉州网站建设哪家好”这个核心问题时,往往会感到迷茫和无措。市场上良莠不齐的供…

作者头像 李华
网站建设 2026/8/13 23:45:26

北京网站开发网站建设价格揭秘:为什么你的报价比别人贵,价值却更高?

作为一名在北京摸爬滚打多年的资深开发者,我见过太多老板在谈论“北京网站开发网站建设价格”时,眼神里那种既渴望又恐惧的复杂神情。他们手里攥着预算表,脑子里转着“能不能便宜点”的念头,心里却担心着“便宜了会不会被坑”。这种纠结,太真实了,也太典型了。今天,咱们…

作者头像 李华
网站建设 2026/8/13 23:45:08

长沙理财网站建设:传统金融机构数字化转型的破局之路

在这个互联网思维无处不在的年代,坐在岳麓山下、湘江边上的长沙,早已不再仅仅是那个拥有臭豆腐和米粉的城市。作为中部地区崛起的超级省会,长沙的经济活力正在以前所未有的速度迸发。如果你还认为理财只是在大厅里填表、或者通过电话那头模糊的声音打交道,那你可能真的out了…

作者头像 李华
网站建设 2026/8/13 23:44:49

2024年广州网站建设q.479185700強避坑指南与实战心得

在现在的互联网时代,做一个企业官网或者个人品牌网站,已经不再是那种“有就就行”的点缀品了,它更像是你在数字世界里的脸面和名片。尤其是对于咱们广州这座商贸之都的企业来说,流量就是生命线,而网站往往就是承接流量的那个容器。今天我不讲那些高大上的理论,也不堆砌晦…

作者头像 李华
网站建设 2026/8/13 23:44:37

网站设计建设合同全解析:如何避开隐形坑位与避免后期扯皮,保障您的每一分预算都花在刀刃上

做企业也好,做个人IP也罢,现在几乎没有人不知道互联网的重要性。很多人觉得,搞个网站很简单,找个人写几个HTML代码,买个服务器,绑个域名,这事儿就算成了。但真正懂行的人都知道,这中间的水深得能淹死人。尤其是涉及到钱多、周期长、需求杂的项目时,那一纸《网站设计建…

作者头像 李华
网站建设 2026/8/13 23:44:30

2026服务有保障的GEO效果检测工具怎么选?优选推荐指南

一、GEO效果检测工具选型核心逻辑&#xff1a;五大核心评估维度随着AI生成式搜索全面普及&#xff0c;品牌数字化运营的核心重心逐步转向GEO生成式引擎优化。专业的GEO效果检测工具&#xff0c;是企业量化AI品牌声量、核验投放成效、迭代优化策略的核心载体。市面上工具品类繁杂…

作者头像 李华