10分 AC #9 玄关

P1816 忠诚

@[hehehy](/user/1036685) ```cpp #include<bits/stdc++.h> using namespace std; int n,m,a[100005],b[3000005],lb[3000005],rb[3000005],x,y; int bt(int l,int r,int u){ lb[u]=l,rb[u]=r; if(l==r){ return b[u]=a[l]; } return b[u]=min(bt(l,(l+r)/2,u*2),bt((l+r)/2+1,r,u*2+1)); } int cx(int l,int r,int u){ if(l==lb[u]&&rb[u]==r){ return b[u]; } int res=1000000000; if(l<=(lb[u]+rb[u])/2){ res=min(res,cx(l,min(rb[u*2],r),u*2)); } if(r>(lb[u]+rb[u])/2){ res=min(res,cx(max(l,lb[u*2+1]),r,u*2+1)); } return res; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } b[1]=bt(1,n,1); for(int i=1;i<=m;i++){ cin>>x>>y; cout<<cx(x,y,1)<<" "; } return 0; } ```
by Estelle_N @ 2024-03-23 16:44:17


@[Estelle_N](/user/469356) 谢谢 关注了
by hehehy @ 2024-03-23 16:59:29


|