关于RE
  • 板块灌水区
  • 楼主WZKQWQ
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/8/12 17:03
  • 上次更新2023/11/4 10:54:19
查看原帖
关于RE
239433
WZKQWQ楼主2021/8/12 17:03

RT,刚刚结束的比赛的T3。

求求dalao帮帮蒟蒻为什么会RE。

蒟蒻写的分块暴力。

代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 100005,Q = 550;
int n,m,q,a[3 * N];
bool t[Q][N];
int f(int x){
	return x / q;
}
int h(int x){
	return x * q;
}
int main(){
	scanf("%d%d",&n,&m);
	q = sqrt(n);
	for(int i = 0;i < n;i++){
		scanf("%d",&a[i]);
		t[f(i)][a[i]] = 1;
	}
	int l,r,k;
	for(int hhh = 1;hhh <= m;hhh++){
		scanf("%d%d%d",&l,&r,&k);
		l--,r--;
		int ans = 1e9;
		if(f(l) == f(r)){
			for(int i = l;i <= r;i++) ans = min(ans,a[i] % k);
		} else {
			for(int i = l;i < h(f(l) + 1);i++) ans = min(ans,a[i] % k);
			for(int i = r;i >= h(f(r));i--) ans = min(ans,a[i] % k);
			for(int i = f(l) + 1;i < f(r);i++){
				for(int j = 0;j < ans;j++){
					bool flag = false;
					for(int o = 0;k * o + j <= 100000;o++) if(t[i][k * o + j]){
						flag = true;
						break;
					}
					if(flag){
						ans = j;
						break;
					} 
				}
			}
		}
		printf("%d\n",ans);
	}
	return 0;
}
2021/8/12 17:03
加载中...