题目传送门
题目大意:
本题翻译的让很多蒟蒻十分懵逼,我在这里再翻译一下:
一共有t组数据,每组数据都有一个n和m,表示长和宽,再输入一个二维矩阵,之后,你需要选取一个边长为l的正方形,使这里面所有数都大于等于l,求l的最大值。
( 1 <= n, m1≤n≤m ; 1<=n*m≤10^6 )
思路:
本题的数组定义就难倒了很多蒟蒻。因为n*m小于等于1000000,如果都定1000000的话,那么就会MLE,这里有三种解决方案:
1.定一维数组,用的时候在导成二维
2.用vector
3.在C++的高版本中,我们可以定义a[n][m],每次用的时候清空,本蒟蒻用的就是这种。
int a[n+1][m+1];
int z[n+1][m+1];
int b[n+1][m+1];
for(int i=0;i<=n;i++){
for(int j=0;j<=m;j++){
z[i][j]=0;
b[i][j]=0;
}
}
for(int i=0;i<=m;i++){
a[0][i]=0;
}for(int i=1;i<=n;i++){