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

真题补题笔记

P11830 [省选联考 2025] 幸运数字

后面忘了,随机分讨,讨论出每一段前面,当前,后面的可能数量区间,还需要对离散化后每个点和两个点之间的段进行分讨,应该是写烦了

#include<bits/stdc++.h>
#define fi first
#define se second
#define N 400005
#define int long long
using namespace std;
struct Ty{int l1,r1,l2,r2;bool operator <(const Ty &a)const{return l2<a.l2;}
}x[N];
priority_queue<pair<int,int> >q;
int z[N],n,m=0,prel[N],prer[N],sufl[N],sufr[N],xl[N],xr[N],pxl[N],pxr[N];
signed main(){int c,T;scanf("%lld%lld",&c,&T);while(T--){m=0;scanf("%lld",&n);for(int i=1;i<=n;i++)scanf("%lld%lld%lld%lld",&x[i].l1,&x[i].r1,&x[i].l2,&x[i].r2);for(int i=1;i<=n;i++){z[++m]=x[i].l2;z[++m]=x[i].r2;}sort(z+1,z+m+1);m=unique(z+1,z+m+1)-z-1;for(int i=1;i<=n;i++){x[i].l2=lower_bound(z+1,z+m+1,x[i].l2)-z;x[i].r2=lower_bound(z+1,z+m+1,x[i].r2)-z;}sort(x+1,x+n+1);int now=1,pl=0,pr=0,l=0,r=0;while(!q.empty())q.pop();for(int i=1;i<=m+1;i++){pxl[i]=l;pxr[i]=r;while(now<=n&&x[now].l2<=i){l+=x[now].l1;r+=x[now].r1;q.push({-x[now].r2,now});now++;}xl[i]=l;xr[i]=r;while(!q.empty()&&-q.top().fi<=i){int u=q.top().se;pl+=x[u].l1;pr+=x[u].r1;l-=x[u].l1;r-=x[u].r1;q.pop();}prel[i]=pl;prer[i]=pr;}now=n;pl=pr=l=r=0;while(!q.empty())q.pop();for(int i=m+1;i;i--){while(now&&x[now].r2>=i){l+=x[now].l1;r+=x[now].r1;q.push({x[now].l2,now});now--;}while(!q.empty()&&q.top().fi>=i){int u=q.top().se;pl+=x[u].l1;pr+=x[u].r1;l-=x[u].l1;r-=x[u].r1;q.pop();}sufl[i]=pl;sufr[i]=pr;}int ans=0;for(int i=1;i<=m;i++){if(prer[i-1]>=sufl[i]&&prel[i-1]<=sufr[i]&&pxr[i]>0)ans+=z[i]-z[i-1]-1;else if(pxr[i]>0){if(prer[i-1]<sufl[i]){if(prer[i-1]+pxr[i]>=sufl[i])ans+=z[i]-z[i-1]-1;}else{if(sufr[i]+pxr[i]>prel[i-1])ans+=z[i]-z[i-1]-1;}}if(prer[i-1]>=sufl[i+1]&&prel[i-1]<=sufr[i+1]&&xr[i]>0)ans++;else if(xr[i]>0){if(prer[i-1]<sufl[i+1])ans+=(prer[i-1]+xr[i]>=sufl[i+1]);else ans+=(sufr[i+1]+xr[i]>prel[i-1]);}}printf("%lld\n",ans);}return 0;
}
http://www.agseo.cn/news/368/

相关文章:

  • 12.8 类与对象的绑定方法和非绑定方法
  • Graspnet视觉抓取(一)——环境搭建
  • 3. 堆排序
  • 12.7 类的property/setter/delter特性
  • 9.8
  • 总结
  • 82python解析器反查当前安装了那些依赖包
  • 【Azure Container App】查看当前 Container App Environment 中的 CPU 使用情况的API
  • nfs服务
  • 低功耗蓝牙BLE与小程序通讯
  • 同事突然关心有没有对象?这可能是职场发展的隐形陷阱
  • TTS微软Azure
  • 12.6 类的封装
  • 深度解码你自己看着办:职场新人必须掌握的潜台词破解术
  • 6 个替代 Jira 的开源项目管理工具推荐
  • 记录一个Windows上的键盘鼠标模拟库和沟子库--Input
  • 惊世骇俗:《易经》六十四卦与数学公理完整映射表
  • 解决docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“:连接超时问题
  • 27届春招备战一轮复习--第三期(推荐)
  • 数据集和数据系统_AI成为工作中很好用的协同成员了
  • IDM超详细图文安装激活教程,一次安装免费使用 Internet Download Manager
  • 标题
  • 12.5 多态与多态性
  • 集训日记
  • 数字孪生技术如何破解产线效率瓶颈? - 智慧园区
  • 三期集训 日记?
  • 需求爆炸?领歌3步科学精简法,让团队重获掌控力!
  • 从想法到代码:AI编程时代,我们如何高质量“喂养”AI?
  • 12.4 菱形继承问题(了解)
  • 25年CSP前ds做题记录