请求加强数据
查看原帖
请求加强数据
602372
Brilliant11001楼主2024/4/19 20:59

我有一个朋友,值域分块大小开的 s[i]s[i] 中的最大值,样例都没过,结果 AC 了……

题目描述中说到 1≤a≤b≤n1 \le a\le b\le n,如果值域没有开够的话就应该会导致错误,但是实际上没有。

加强建议:将 s[i]s[i] 中的最大值设置为小于 nn ,但是询问中的 a,ba,b 可以达到 nn。(顺便多加几组数据吧)

数据生成器:

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <cmath>
using namespace std;

const int N = 1000010;

int random(int n) {
	return (long long)rand() * rand() % n;
}
int a[N];

int main() {
	freopen("data.in", "w", stdout);
	srand((unsigned)time(0));
	int n = random(1e5) + 1, m = random(1e6) + 1;
	printf("%d %d", n, m);
	puts("");
	for(int i = 1; i <= n; i++) a[i] = random(n - 25) + 1; //
	for(int i = 1; i <= n; i++) printf("%d ", a[i]);
	puts("");
	int l, r, vl, vr;
	for(int i = 1; i <= m; i++) {
		l = random(n) + 1;
		r = random(n) + 1;
		vl = random(n) + 1;
		vr = random(n) + 1;
		if(l > r) swap(l, r);
		if(vl > vr) swap(vl, vr);
		printf("%d %d %d %d\n", l, r, vl, vr);
	} 
	return 0;
}

望采纳,谢谢!

2024/4/19 20:59
加载中...