样例过了,提交全wa
查看原帖
样例过了,提交全wa
204253
繁瀚道斩楼主2020/8/13 11:12
#include <iostream>
#include <algorithm>
#define N 500010
using namespace std;
struct tr {
	int l, r, max;
}t[N*4];
int a[N];
void js(int n, int l, int r)
{
	t[n].l = l;
	t[n].r = r;
	if (l == r)
	{
		t[n].max = a[l];
		return;
	}
	int mid = (l + r) >> 1;
	js(n * 2, l, mid);
	js(n * 2 + 1, mid + 1, r);
	t[n].max = max(t[n * 2].max, t[n * 2 + 1].max);
}
void xg(int n, int x, int y)
{
	if (t[n].l ==t[n].r)
	{
		t[n].max = max(y, t[n].max);
		return;
	}
	int mid = (t[n].l + t[n].r) >> 1;
	if (x <= mid) xg(n * 2, x, y);
	else xg(n * 2 + 1, x, y);
	t[n].max = max(t[n * 2].max, t[n * 2 + 1].max);
}
int zui(int n, int x, int y)
{
	if (t[n].l >= x && t[n].r <= y)
	{
		return t[n].max;
	}
	int mid = (t[n].l + t[n].r) >> 1,ans=-10;
	if (x <= mid) ans = max(ans, zui(n * 2, x, y));
	if (y > mid) ans = max(ans, zui(n * 2 + 1, x, y));
	return ans;
}
int main()
{
	int n, m;
	cin >> n >> m;
	for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
	js(1, 1, n);
	while (m--)
	{
		char c;
		int x, y;
		cin >> c;
		scanf("%d %d", &x, &y);
		if (c == 'Q') cout << zui(1, x, y)<<endl;
		else {
			xg(1, x, y);
		}
	}
	return 0;
}

我真的找不出来问题 有大佬帮忙看下吗?

2020/8/13 11:12
加载中...