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

前缀和算法差分算法(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]
http://www.cnnetsun.cn/news/4009933.html

相关文章:

  • 泉州网站建设哪家好:揭秘那些被忽略的关键指标与避坑指南
  • 北京网站开发网站建设价格揭秘:为什么你的报价比别人贵,价值却更高?
  • 长沙理财网站建设:传统金融机构数字化转型的破局之路
  • 2024年广州网站建设q.479185700強避坑指南与实战心得
  • 网站设计建设合同全解析:如何避开隐形坑位与避免后期扯皮,保障您的每一分预算都花在刀刃上
  • 2026服务有保障的GEO效果检测工具怎么选?优选推荐指南
  • 揭秘石狮网站建设价格:老板们别再被坑了,这才是2024年真实行情
  • 2024年廊坊营销型网站建设避坑指南:如何打造高转化率的数字化获客引擎
  • 网站建设哈尔滨网站设计3:揭秘本地企业数字化转型的底层逻辑与实战避坑指南
  • ELK分布式日志平台搭建 + ES集群安全与监控综合实践
  • 从零基础到行业标杆,揭秘哈尔滨微网站建设的高质量落地全流程解析与避坑指南
  • C# System.IO 文件操作核心指南:从流抽象到异步高性能实战
  • 全面解读2024年卫生局网站建设方案:如何打造亲民高效的健康服务门户
  • 文山微网站建设全攻略:从零基础搭建到获客转化,中小企业必看的深度解析
  • 淮安营销型网站建设:如何让企业在激烈的市场浪潮中真正突围而出
  • 哪个商城网站建设好,资深从业者深度解析避坑指南与实战经验
  • 探索高校 门户网站 建设背景下的数字化转型与校园品牌重塑深层逻辑
  • 书画院网站建设方案:打造高端文化数字门户的深度规划与实施策略
  • 网站建设服务有哪些:揭秘中小企业官网搭建的真相与避坑指南,助你打造高转化率数字名片
  • 揭秘国家机构网站建设背后的硬功夫与软实力,如何打造权威信赖的数字窗口
  • 五华网站建设怎么选?揭秘优帮云高性价比建站方案与企业数字化突围指南
  • 临夏州建设局网站如何高效查询最新政策与办事指南全流程解析
  • 从0到1搭建专属官网:网站建设熊猫建站如何帮助企业打破流量瓶颈实现低成本高转化?
  • 手把手教你学 Simulink—— 考虑磁饱和效应的 IPMSM 最大转矩(MTPA)控制仿真(落地版)
  • 2024年最新版电子商务网站建设模板下载指南:让独立品牌从小白到老手的逆袭之路
  • 2024年网站建设青雀深度解析与企业官网搭建实战指南
  • 五河网站建设哪家好?避开这些坑,手把手教你选出最靠谱的设计团队
  • 揭秘网站建设报价单PPT背后的行业潜规则与避坑指南:如何看懂那份让你晕头转向的费用清单
  • 昆明移动网站建设:从底层逻辑到落地执行,一套不绕弯子的实操指南
  • C语言文件操作核心:从文本/二进制读写到高效I/O与错误处理