博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3368 Frequent values 线段树 节点值得变化
阅读量:4113 次
发布时间:2019-05-25

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

题意:
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; #define MM(a) memset(a,0,sizeof(a)) typedef long long ll; typedef unsigned long long ULL; const int mod = 1000000007; const double eps = 1e-10; const int inf = 0x3f3f3f3f; const int big=100000; int min(int a,int b) { return a>b?b:a;}; int max(int a,int b) { return a>b?a:b;}; int lef[big+5],righ[big+5]; int a[big+5],p[big+5],q[big+5],data[4*big+5],v[big+5]; struct Node{ int lp;int rp; }kind[big+5]; void build(int n,int l,int r) { if(r-l==1) { data[n]=kind[l].rp-kind[l].lp+1; return; } build(2*n+1,l,(l+r)>>1); build(2*n+2,(l+r)>>1,r); data[n]=max(data[2*n+1],data[2*n+2]); } int query(int a,int b,int k,int l,int r) { if(r<=a||l>=b) return -inf; else if(a<=l&&r<=b) return data[k]; else if(r>a&&l
>1); int tempr=query(a,b,2*k+2,(l+r)>>1,r); return templ>tempr?templ:tempr; } } int n,c,cnt; void init() { scanf("%d",&c); cnt=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); if(i==1||a[i]!=a[i-1]) { lef[i]=i; ++cnt; kind[cnt].lp=i; kind[cnt-1].rp=i-1; } else lef[i]=lef[i-1]; v[i]=cnt; } build(0,1,cnt+1); for(int i=n;i>=1;i--) if(i==n||a[i]!=a[i+1]) righ[i]=i; else righ[i]=righ[i+1]; for(int i=1;i<=c;i++) scanf("%d %d",&p[i],&q[i]); } int main() { while(~scanf("%d",&n)&&n) { init(); for(int i=1;i<=c;i++) { int x=p[i],y=q[i]; if(a[x]==a[y]) printf("%d\n",y-x+1); else if(righ[x]+1==lef[y]) printf("%d\n",max(righ[x]-x+1,y-lef[y]+1)); else { int temp=max(righ[x]-x+1,y-lef[y]+1); printf("%d\n",max(temp,query(v[x]+1,v[y],0,1,cnt+1))); } } } return 0; }

转载地址:http://mvgsi.baihongyu.com/

你可能感兴趣的文章
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>
JavaSE_day12 集合
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
Day_15JavaSE 异常
查看>>
异常 Java学习Day_15
查看>>
JavaSE_day_03 方法
查看>>
day-03JavaSE_循环
查看>>