#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int inf = 0x3f3f3f3f;
const int N = 100005;
int dp[N],a[N],b[N];
int t[N*4];
int n;
void upd(int rt,int l,int r,int pos,int val)
{
if(l==r)
{
t[rt]=val;
return ;
}
int m=(l+r)>>1;
if(pos<=m) upd(rt<<1,l,m,pos,val);
else upd(rt<<1|1,m+1,r,pos,val);
t[rt]=max(t[rt<<1],t[rt<<1|1]);
}
int ask(int rt,int l,int r,int ql,int qr)
{
if(l>=ql && r<=qr)
{
return t[rt];
}
int m=(l+r)>>1;
int q1=0;
int q2=0;
if(ql<=m) q1=ask(rt<<1,l,m,ql,qr);
if(qr>m) q2=ask(rt<<1|1,m+1,r,ql,qr);
return max(q1,q2);
}
void cdq(int l,int r)
{
if(l>=r) return ;
int m=(l+r)>>1;
cdq(l,m);
for(int i=l;i<=m;i&#
cdq解决LIS问题
最新推荐文章于 2019-09-11 00:21:21 发布