苟蒻求助70TLE
查看原帖
苟蒻求助70TLE
145838
1930498900wkx楼主2020/7/24 20:25

为什么第五个点会T

#include<bits/stdc++.h>
#define _for(i,a,b) for(int i=(a);i<(b);i++)
#define mp make_pair
#define ff first
#define ss second
#define pb push_back
#define pf push_front
#define pob pop_back
#define pof pop_front
#define pii pair<int,int>
#define pq priority_queue
#define ll long long
#define set(a,n) memset(a,n,sizeof(a))
#define MAX(a,b) ((a)>(b)?(a):(b))
#define MIN(a,b) ((a)<(b)?(a):(b))
#define tra(a,it) for(it=a.begin();it!=a.end();it++)
#define ABS(a) ((a)>0?(a):-(a))
#define isnum(c) (c>='0'&&c<='9')
#define cpy(a,b) memcpy(a,b,sizeof(a))
#define updata(a,b) (a)=MAX((a),(b))
using namespace std;
const int MAXN=(200010)<<1,INF=0x7ffffff;
int ma[MAXN],lson[MAXN],rson[MAXN],cnt=1,a[MAXN],N,M;
void read(int &a)
{
	a=0;
	bool flag=0;
	char c=0;
	while(!isnum(c))
	{
		flag=(c=='-');
		c=getchar();
	}
	while(isnum(c))
	{
		a=(a<<3)+(a<<1)+c-'0';
		c=getchar();
	}
	a=flag?-a:a;
	return;
}
void pushup(int u)
{
	ma[u]=MAX(ma[lson[u]],ma[rson[u]]);
	return;
}
void build(int u,int l,int r)
{
	if(l==r)
	{
		ma[u]=a[l];
		return;
	}
	int mid=(l+r)>>1;
	build(lson[u]=cnt++,l,mid);
	build(rson[u]=cnt++,mid+1,r);
	pushup(u);
	return;
}
void change(int u,int l,int r,int tar,int d)
{
	if(l==r)
	{
		updata(ma[u],d);
		return;
	}
	int mid=(l+r)>>1;
	if(tar<=mid)
		change(lson[u],l,mid,tar,d);
	else
		change(rson[u],mid+1,r,tar,d);
	pushup(u);
	return;
}
int query(int u,int l,int r,int ql,int qr)
{
	if(ql<=l&&r<=qr)
		return ma[u];
	int mid=(l+r)>>1,ret=0;
	if(mid>=ql)
		updata(ret,query(lson[u],l,mid,ql,qr));
	if(mid<qr)
		updata(ret,query(rson[u],mid+1,r,ql,qr));
	return ret;
}
void init()
{
	return;
}
void input()
{
	cin>>N>>M;
	_for(i,1,N+1)
		cin>>a[i];
	return;
}
void solve()
{
	char c;
	int a,b,ans;
	build(0,1,N);
	_for(i,0,M)
	{
//		cout<<query(0,1,N,3,4)<<endl;	
		cin>>c>>a>>b;
		if(c=='Q')
		{
			ans=query(0,1,N,a,b);
			printf("%d\n",ans);
		}
		else
			change(0,1,N,a,b);	
	}
	return;
}
void print()
{
	return;
}
int main()
{
//	freopen("P1531_5.in","r",stdin);
//	freopen("1.txt","w",stdout);
	init();
	input();
	solve();
	print();
	return 0;
}  
2020/7/24 20:25
加载中...