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

P2650 弹幕考察 题解

P2650 弹幕考察 题解

P2650 弹幕考察 题解

题目链接

本人博客

前言

做法1:树状数组

做法2:二分

以上两个做法在本篇题解中均会涉及。

笔者一拿到这个题,就想到了用数据结构维护一个查询区间内原区间的个数。再一看是明显是离线查询,故想到了树状数组。打完之后点开标签,发现竟然有二分的标签,于是看了题解,才恍然大悟,发现原来这个题原来可以这么简单。

做法1:树状数组

从后往前维护树状数组,统计答案。

注意到数据,发现没有办法维护如此之巨大的树状数组,怎么办?

答案就是-离散化!

\(\color{red}{\text{注意:离散化后数组大小一定想好要开多大!}}\) 笔者就是这里被卡了 \(5\) 发。

代码

#include<cstdio>
#include<iostream> 
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
#define int long long 
inline int Read(){int x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}while(isdigit(c)){x=x*10+c-48;c=getchar();}return x*f;
}
inline void Write(int x){if(x<0){x=-x;putchar('-');}if(x>9) Write(x/10);putchar(x%10+'0');
}
const int N=1e6+10;
int n,m,rr;
//rr:统计离散化后最右边的数字
int li[N],totl=0;
int ans[N];
struct node{int l,r,id;
}a[N],q[N]; 
//a:原区间,q:查询区间
bool cmp1(node A,node B){return A.r>B.r;}
bool cmp2(node A,node B){return A.l>B.l;}
//树状数组板子
int c[N*5];
int lowbit(int x){return x&(-x);
}
void change(int pos,int v){while(pos<=rr){c[pos]+=v;pos+=lowbit(pos);}
}
int query(int pos){int res=0;while(pos){res+=c[pos];pos-=lowbit(pos);}return res;
}
signed main(){n=Read();m=Read();for(int i=1;i<=n;i++){a[i].l=Read()+1,a[i].r=Read()+a[i].l;li[++totl]=a[i].l,li[++totl]=a[i].r;}for(int i=1;i<=m;i++){q[i].l=Read()+1,q[i].r=Read()+q[i].l;li[++totl]=q[i].l,li[++totl]=q[i].r;q[i].id=i;}//离散化sort(li+1,li+totl+1);int cnt=unique(li+1,li+totl+1)-(li+1);for(int i=1;i<=n;i++) {a[i].l=lower_bound(li+1,li+cnt+1,a[i].l)-li;a[i].r=lower_bound(li+1,li+cnt+1,a[i].r)-li;rr=max(rr,a[i].r);}for(int i=1;i<=m;i++){q[i].l=lower_bound(li+1,li+cnt+1,q[i].l)-li;q[i].r=lower_bound(li+1,li+cnt+1,q[i].r)-li;rr=max(rr,q[i].r);}sort(a+1,a+n+1,cmp1);sort(q+1,q+m+1,cmp2);int j=1;for(int i=1;i<=m;i++){while(a[j].r>q[i].l) {change(a[j].l,1);j++;}ans[q[i].id]=query(q[i].r-1);}for(int i=1;i<=m;i++) printf("%lld\n",ans[i]);return 0; 
}

做法2:二分

考虑什么时候原区间对查询区间有贡献。

设原区间为 \([x,y]\),查询区间为 \([l,r]\)

\(y < l\) 或者 \(x > r\) 的时候原区间不在查询区间的覆盖范围内,此时无贡献。如下图。

所以只需要统计查询区间右端点前原区间左端点的个数,减去查询区间左端点前原区间右端点的个数。

代码

#include<cstdio>
#include<iostream> 
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
#define int long long 
inline int Read(){int x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}while(isdigit(c)){x=x*10+c-48;c=getchar();}return x*f;
}
inline void Write(int x){if(x<0){x=-x;putchar('-');}if(x>9) Write(x/10);putchar(x%10+'0');
}
const int N=1e5+10;
int n,m,l[N],r[N];
signed main(){n=Read();m=Read();for(int i=1;i<=n;i++){l[i]=Read(),r[i]=Read()+l[i]-1;//注意这里是左闭右开}sort(l+1,l+n+1);sort(r+1,r+n+1);//二分需要满足单调性for(int i=1;i<=m;i++){int x=Read(),y=Read()+x;int ans=lower_bound(l+1,l+n+1,y)-(l+1);ans-=lower_bound(r+1,r+n+1,x)-(r+1);printf("%lld\n",ans);}return 0; 
}
http://www.jsqmd.com/news/30300/

相关文章:

  • 2025防火/模压/瓦楞/大跨距/热镀锌/热浸锌/不锈钢/光伏/铝合金/锌铝镁/电缆桥架推荐榜:百著金属以全场景防护领跑,四家企业凭细分优势突围
  • 视频工具FFmpeg
  • 低代码如何打破企业数字化转型的 “人才瓶颈”?
  • Odoo中的消费税处理方案
  • 2025河北小型新中式全屋定制,意式全屋定制,意式极简全屋定制,全屋定制厂家精选:尚品金马装饰,本土实力品牌值得关注
  • Java数组——数组定义、声明、创建
  • 2025年11月冷作模具钢,塑胶模具钢,进口模具钢,模具钢厂家推荐榜:聚焦焰特尔技术实力与品质管控!
  • 2025常州小型桨叶干燥机,闪蒸干燥机,流化床干燥机,喷雾干燥机厂家盘点:瑞德干燥,聚焦细分需求的务实之选
  • 2025年闪蒸干燥机厂家推荐:常州高性价比闪蒸干燥机企业盘点
  • 2025年苏州竞速无人机电机,安防无人机电机,电机厂家精选榜单:睿创电子,优质企业值得关注
  • 2025年闪蒸干燥机厂家推荐清单:聚焦细分领域的 专而精 之选
  • 2025实用铁氟龙高温线,硅胶高温线,高压高温线,高温线厂家推荐:申远高温线,聚焦细分领域的靠谱选择
  • uni-app x开发商城系统,资讯列表结构,数据渲染,news-item组件封装
  • 使用office tool plus 激活office
  • #课后作业1:课件动手动脑及验证内容解答 - 20243867孙堃2405
  • 智变未来:中国AI HR市场进程盘点与主流玩家深度分析
  • PostgreSQL数据库:新手开启从0到1的学习之路
  • 2025电线电缆生产厂家,电线电缆厂家精选:武汉特航,赋能多行业的技术型品牌揭秘!
  • nfs 自动挂载的一些问题
  • 2025年浙江轻奶茶加盟渠道权威推荐榜单:奶茶加盟/茶饮加盟/奶茶店加盟渠道精选
  • 2025优质小型环保腻子粉,植物腻子粉,净醛腻子粉,健康腻子粉,无味腻子粉,腻子粉厂家推荐,实用选型参考
  • 2025年河南心理健康咨询机构权威推荐:河南婚姻心理咨询/河南家庭心理咨询/河南心理咨询机构服务中心精选
  • 面试:安全框架与安全管理-网络-防火墙与IPS - 徐正柱
  • 2025年汽车机油,润滑油厂家推荐榜:聚焦能源高端化发展潜力!
  • 2025小众嵌入式一体机,悬臂式一体机,ARM一体机,一体机厂家推荐榜:朗宇智能,聚焦细分场景的实力之选
  • 2025西南地区小型花卉大棚,单栋大棚,玻璃温室大棚,温室大棚厂家实用推荐:青程农业,适配中小种植户需求
  • 2025 年 11 月 DALI 调光系统厂家推荐排行榜,调光网关/调光开关/调光电源/调光驱动/调光传感器/调光模块/调光控制系统公司推荐
  • 2025 年热电偶厂家最新推荐排行榜:聚焦 K 型 / T 型 / 铠装丝 / 高温热电偶优质品牌
  • 2025年今日黄金回收价格机构权威推荐榜单:黄金上门回收/回收黄金机构/现在黄金回收价格源头机构精选
  • 2025年汽车音响生产厂家权威推荐榜单:车载音响/汽车音响喇叭/汽车音响功放源头厂家精选