P3865求调
  • 板块灌水区
  • 楼主Juice_Jiouge
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/26 15:31
  • 上次更新2025/1/26 15:46:03
查看原帖
P3865求调
711650
Juice_Jiouge楼主2025/1/26 15:31

here

用的线段树,1WA2AC10RE。

#include<bits/stdc++.h>
using namespace std;
int n,m,a[100005];
struct Tree{int M,l,r;};Tree tr[222000];
int build(int l,int r,int in){if(l==r){tr[in].M=a[l];tr[in].l=l;tr[in].r=r;
        return tr[in].M;}
    int mid=(l+r)/2;
    tr[in].M=max(build(l,mid,in*2),build(mid+1,r,in*2+1));
    tr[in].l=l;tr[in].r=r;
    return tr[in].M;}
int vis(int l,int r,int in){if((l==tr[in].l && r==tr[in].r) || l==r) return tr[in].M;
    int Ma=0;
    if(l<=tr[in*2].r)
        Ma=max(Ma,vis(l,tr[in*2].r,in*2));
    if(r>=tr[in*2+1].l)
	    Ma=max(Ma,vis(tr[in*2+1].l,r,in*2+1));
    return Ma;}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    tr[1].M=build(1,n,1);
    while(m--){
        int l,r;
        cin>>l>>r;
        cout<<vis(l,r,1)<<endl;}
    return 0;}
2025/1/26 15:31
加载中...