RE,WA,求调!!!
查看原帖
RE,WA,求调!!!
1128039
ybc2026lhy楼主2024/7/18 08:56
#include<bits/stdc++.h>
using namespace std;
const int MAXN=2e3+5;
int n,m,a[MAXN][MAXN],sum[MAXN][MAXN],ans=0,l,r;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL),cout.tie(NULL);
	memset(a,0,sizeof(a));
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int x,y;
		cin>>x>>y;
		l=max(l,x),r=max(r,y);
		a[x][y]++;
	}
	for(int i=1;i<=r;i++){
		sum[1][i]=sum[1][i-1]+a[1][i];
	}
	for(int i=2;i<=l;i++){
		sum[i][1]=sum[i-1][1]+a[i][1];
	}
	for(int i=2;i<=l;i++){
		for(int j=2;j<=r;j++){
			sum[i][j]=a[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
		}
	}
	if(n==1){
		cout<<1;
	} else {
		bool flag=true;
		for(int len=2;len<=min(l,r);len++){
			for(int i=1;i+len-1<=r;i++){
				for(int j=1;j+len-1<=l;j++){
					int x=j,y=i;
					ans=sum[j+len-1][i+len-1]+sum[x-1][y-1]-sum[j+len-1][y-1]-sum[x-1][i+len-1];
					if(ans>=n){
						ans=len;
						flag=false;
						break;
					}
				}
				if(flag==false){
					break;
				}
			}
			if(flag==false){
				break;
			}
		}
		cout<<ans;
	}
	return 0;
}
2024/7/18 08:56
加载中...