好久没有自己独立做出题了。
就是一个dp.
画图就可以得出Dp关系
/*
ID:jinbo wu
TASK:bigbrn
LANG:C++
*/
#include<bits/stdc++.h>
using namespace std;
bool a[1010][1010];
int b[1010][1010];
int main()
{
freopen("bigbrn.in","r",stdin);
freopen("bigbrn.out","w",stdout);
int n,m;
cin>>n>>m;
int u,v;
for(int i=0;i<m;i++)
{
cin>>u>>v;
a[u][v]=1;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(a[i][j])
b[i][j]=0;
else
b[i][j]=1;
}
int ans=1;
for(int i=2;i<=n;i++)
for(int j=2;j<=n;j++)
{
if(!a[i][j])
{
b[i][j]=min(b[i-1][j-1],min(b[i-1][j],b[i][j-1]))+1;
}
ans=max(ans,b[i][j]);
}
cout<<ans<<endl;
}