#include<iostream>
#include<cstdio>
#include<cstring>
#include<cctype>
using namespace std;
int mp[1010][1010],dp[1010][1010];
int n,m,ans=0;
int main(){
for(int i=1;i<1010;i++)
for (int j=1;j<1010;j++) dp[i][j]=1;
scanf("%d%d",&n,&m);
for (int i=1;i<=m;i++){
int x,y;scanf("%d%d",&x,&y);
mp[x][y]=1;dp[x][y]=0;
}
for (int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
if (mp[i][j]) continue;
dp[i][j]=min(min(dp[i-1][j-1],dp[i][j-1]),dp[i-1][j])+1;
ans=max(ans,dp[i][j]);
}
printf("%d\n",ans);
return 0;
}
【USACO5-3-4】巨大的牛棚Big Barn dp
最新推荐文章于 2021-03-08 23:37:14 发布