尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

P9991 [Ynoi Easy Round 2023] TEST_107

P9991 [Ynoi Easy Round 2023] TEST_107
📅 发布时间:2026/6/19 1:46:53

枚举任意一种未出现的情况,此时限制是最松的。此时答案为:

\(\max \{p_i-p_{i-1}-1|p_i,p_{i-1}\in[l,r]\}\)

套路的可以用扫描线解决。还有两种情况为:

  1. \(p_{i}\in[l,r],p_{i-1}<l\),贡献为 \(p_i-l\)。

  2. \(p_{i}\in[l,r],p_{i+1}>r\),贡献为 \(r-p_i\)。

以第一种为例,以 \(l\) 作扫描线,则相当于查询 \([l,r]\) 中所有作为该种数最后一次出现的位置的最大值。类似的每次将 \(lst_{a_i}\) 位置的权置为 \(inf\),\(i\) 处置为 \(i\) 即可。第二种同理。

为了卡常严肃学习了 zkw 线段树 /ll。

Takanashi Rikka
// Problem: P9991 [Ynoi Easy Round 2023] TEST_107
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P9991
// Memory Limit: 512 MB
// Time Limit: 4000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include<bits/stdc++.h>
using namespace std;
#define fin(x) freopen(#x".in","r",stdin)
#define fout(x) freopen(#x".out","w",stdout)
#define fr(x) fin(x),fout(x);
#define Fr(x,y) fin(x),fout(y)
#define INPUT(_1,_2,FILE,...) FILE
#define IO(...) INPUT(__VA_ARGS__,Fr,fr)(__VA_ARGS__)
#define pb push_back
#define ll long long
#define pii pair<int,int>
#define mp make_pair
#define intz(x,z) memset((x),(z),sizeof((x)))
#define cfast ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
inline ll lowbit(ll x){return x&-x;}
#define fi first
#define se second
inline void cmx(auto &x,ll y){if(y>x)x=y;}
inline void cmn(auto &x,ll y){if(y<x)x=y;}
char *p1,*p2,buf[200000];
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,200000,stdin),p1==p2)?EOF:*p1++)
#define tup(x) array<int,(x)>
inline ll read(){ll x=0,f=1;char ch=nc();while(ch<48||ch>57){if(ch=='-')f=-1;ch=nc();}while(ch>=48&&ch<=57)x=x*10+ch-48,ch=nc();return x*f;
}
const int N=2e6+5;
int p[N],ans[N],l[N],r[N],a[N],headl[N],headr[N],cntl,cntr,k;
struct edge{int to,nxt;}L[N],R[N];
inline void addl(int u,int v){L[++cntl]={v,headl[u]},headl[u]=cntl;}
inline void addr(int u,int v){R[++cntr]={v,headr[u]},headr[u]=cntr;}
struct sgt{int x[N<<2],y[N<<2];void build(){intz(y,0x3f);}inline void upd(int i,int d){i+=k,x[i]=y[i]=d;for(i>>=1;i;i>>=1)x[i]=max(x[i<<1],x[i<<1|1]),y[i]=min(y[i<<1],y[i<<1|1]);}inline int MAX(int l,int r){int res=-1e9;for(l=l-1+k,r=r+1+k;l^r^1;l>>=1,r>>=1){if(!(l&1))cmx(res,x[l^1]);if(r&1)cmx(res,x[r^1]);}return res;}inline int MIN(int l,int r){int res=1e9;for(l=l-1+k,r=r+1+k;l^r^1;l>>=1,r>>=1){if(!(l&1))cmn(res,y[l^1]);if(r&1)cmn(res,y[r^1]);}return res;}
}t1,t2;
void UesugiErii(){int n,m;n=read(),m=read(),k=1;while(k<=n+1)k<<=1;for(int i=1;i<=n;i++)a[i]=read();for(int i=1;i<=m;i++)l[i]=read(),r[i]=read(),addl(l[i],i),addr(r[i],i);t1.build(),t2.build();for(int i=1;i<=n;i++){if(p[a[i]])t1.upd(p[a[i]],i-p[a[i]]-1),t2.upd(p[a[i]],1e9);p[a[i]]=i,t2.upd(i,i);for(int j=headr[i],v;j;j=R[j].nxt)v=R[j].to,cmx(ans[v],t1.MAX(l[v],r[v])),cmx(ans[v],i-t2.MIN(l[v],r[v]));}t1.build();for(int i=1;i<=n;i++)p[a[i]]=0;for(int i=n;i;i--){if(p[a[i]])t1.upd(p[a[i]],-1);t1.upd(i,i),p[a[i]]=i;for(int j=headl[i],v;j;j=L[j].nxt)v=L[j].to,cmx(ans[v],t1.MAX(l[v],r[v])-i);}for(int i=1;i<=m;i++)printf("%d\n",ans[i]);
}
signed main(){// cfast;int _=1;//cin>>_;for(;_;_--)UesugiErii();return 0;
}

相关新闻

  • 2025年国内地坪源头厂商权威评测与推荐:深度解析服务、性能与选型策略 - 呼呼拉呼
  • 3分钟快速上手XHS-Downloader:小红书内容高效下载与数据导出实战
  • League Director终极指南:打造专业级英雄联盟回放视频

最新新闻

  • 供应链规则引擎应用:JVS-Rules实现动态供应商评分
  • 嵌入式高精度低功耗ADC选型与应用:Sigma-Delta架构与TC3405实战
  • VS2019使用Microsoft Web Browser控件获取网页源码
  • 2026玉林防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配桂东南盆地回南天防潮暴雨甄选指南 - 宅安选房屋修缮
  • Django毕设项目:基于 Django+Vue 的电信业务资费结算管理系统的设计与实现 基于 Django+Vue 的移动通信资费后台管控平台 (源码+文档,讲解、调试运行,定制等)
  • RE46C109低功耗报警驱动芯片:集成LDO与升压驱动的设计实战

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号