社区讨论

93pts求改

P3865【模板】ST 表 & RMQ 问题参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lz9y0wsd
此快照首次捕获于
2024/07/31 22:29
2 年前
此快照最后确认于
2024/08/01 09:05
2 年前
查看原帖
CPP
#include <iostream>

using namespace std;
#define MAXN 100005

int n, m, a[MAXN], ST[MAXN][17], A, B, log_2[MAXN];

template<typename T>
inline T read() {
	T num = 0, f = 1;
	char ch = getchar();
	while (ch < '0' || ch>'9') {
		if (ch == '-')f = -1;
		ch = getchar();
	}
	while (ch >= '0' && ch <= '9')num = num * 10 + ch - '0', ch = getchar();
	return num * f;
}

template<typename T>
inline void write(T num) {
	if (num < 0)putchar('-'), num = -num;
	if (num > 10)write(num / 10);
	putchar(num % 10 + '0');
}

void init() {
	for (int i = 2; i <= n; i++)log_2[i] = log_2[i >> 1] + 1;
	for (int i = 1; i <= n; i++)ST[i][0] = a[i];
	for (int j = 1; (1 << j) <= n; j++)
		for (int i = 1; i <= n - (1 << j) + 1; i++)
			ST[i][j] = max(ST[i][j - 1], ST[i + (1 << j - 1)][j - 1]);
}

int query() {
	int k = log_2[B - A + 1];
	return max(ST[A][k], ST[B - (1 << k) + 1][k]);
}
	
int main() {
	n = read<int>(), m = read<int>();
	for (int i = 1; i <= n; i++)a[i] = read<int>();
	init();
	while (m--) {
		A = read<int>(), B = read<int>();
		write(query());
		putchar('\n');
	}
	return 0;
}
第11个点报错: Wrong Answer.wrong answer On line 487733 column 1, read 0, expected 1. 最终得分93pts 求神犇改错 %%%

回复

2 条回复,欢迎继续交流。

正在加载回复...