博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 3489: A simple rmq problem
阅读量:6280 次
发布时间:2019-06-22

本文共 1643 字,大约阅读时间需要 5 分钟。

1 #include
2 #include
3 #include
4 #define M 200009 5 using namespace std; 6 struct A 7 { 8 int d[3],mx[3],mn[3],l,r,v,mx1; 9 }a[M]; 10 int n,b[M],v[M],N,ans,root,m; 11 bool cmp(A a1,A a2) 12 { 13 return a1.d[N]
>1; 34 N=now; 35 nth_element(a+l,a+mid,a+r+1,cmp); 36 if(l
mid) 41 a[mid].r=jian(mid+1,r,(now+1)%3); 42 else 43 a[mid].r=0; 44 updata(mid); 45 return mid; 46 } 47 void xun(int k,int l,int r) 48 { 49 if(!k) 50 return; 51 if(a[k].mx[0]
r&&a[k].mn[1]>=l&&a[k].mx[1]<=r) 52 { 53 ans=max(a[k].mx1,ans); 54 return; 55 } 56 if(a[k].mn[0]>=l||a[k].mx[2]<=r||a[k].mx[1]
r) 57 return; 58 if(a[k].d[0]
r&&a[k].d[1]>=l&&a[k].d[1]<=r) 59 ans=max(ans,a[k].v); 60 int l1=a[a[k].l].mx1,r1=a[a[k].r].mx1; 61 if(l1>r1) 62 { 63 if(l1>ans) 64 xun(a[k].l,l,r); 65 if(r1>ans) 66 xun(a[k].r,l,r); 67 } 68 else 69 { 70 if(r1>ans) 71 xun(a[k].r,l,r); 72 if(l1>ans) 73 xun(a[k].l,l,r); 74 } 75 return; 76 } 77 int main() 78 { 79 scanf("%d%d",&n,&m); 80 for(int i=1;i<=n;i++) 81 { 82 scanf("%d",&b[i]); 83 a[i].mx1=a[i].v=b[i]; 84 a[i].d[1]=i; 85 a[i].d[2]=n+1; 86 if(v[b[i]]) 87 { 88 a[i].d[0]=v[b[i]]; 89 a[v[b[i]]].d[2]=i; 90 } 91 v[b[i]]=i; 92 } 93 root=jian(1,n,0); 94 for(int i=1;i<=m;i++) 95 { 96 int x,y,l,r; 97 scanf("%d%d",&x,&y); 98 l=min((x+ans)%n+1,(y+ans)%n+1); 99 r=max((x+ans)%n+1,(y+ans)%n+1);100 ans=0;101 xun(root,l,r);102 printf("%d\n",ans);103 }104 return 0;105 }

用KDtree解决序列问题。三维,一维上一个,一维这个,一维下一个。

转载于:https://www.cnblogs.com/xydddd/p/5309152.html

你可能感兴趣的文章
openstack 制作大于2TB根分区自动扩容的CENTOS镜像
查看>>
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
python分析postfix邮件日志的状态
查看>>
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
爆牙齿的Web标准面试考题II(iPhone SMS/iChat UI的Web标准实现)
查看>>
XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库
查看>>
MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)
查看>>
找小于N 的所有质数
查看>>
Windows下的Jupyter Notebook 的介绍(写给新手)(图文详解)
查看>>
iOS开发-CocoaPods实战
查看>>