[USACO5.3]巨大的牛棚Big Barn
Posted 66dzb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[USACO5.3]巨大的牛棚Big Barn相关的知识,希望对你有一定的参考价值。
[TimeGate]
https://www.luogu.org/problem/P2701
【解题思路】
f[i][j]=min(min(f[i][j-1],f[i-1][j]),f[i-1][j-1])+1;
f(i, j)表示以(i, j)为右下角的最大正方形的边长。
【code】
1 #include <cstdio>
2 #include <iostream>
3 #include <algorithm>
4 using namespace std;
5 int n,t,x,y,ans=-1<<29;
6 bool vis[1005][1005];
7 int f[1005][1005];
8 int main(){
9 //freopen("2701.in","r",stdin);
10 //freopen("2701.out","w",stdout);
11 scanf("%d%d",&n,&t);
12 while(t--){
13 scanf("%d%d",&x,&y);
14 vis[x][y]=true;
15 }
16 for(register int i=1;i<=n;i++){
17 for(register int j=1;j<=n;j++){
18 if(!vis[i][j])
19 f[i][j]=min(f[i-1][j-1],min(f[i][j-1],f[i-1][j]))+1;
20 ans=max(ans,f[i][j]);
21 }
22 }
23 printf("%d
",ans);
24 return 0;
25 }
以上是关于[USACO5.3]巨大的牛棚Big Barn的主要内容,如果未能解决你的问题,请参考以下文章
洛谷——P2701 [USACO5.3]巨大的牛棚Big Barn
洛谷—— P2701 [USACO5.3]巨大的牛棚Big Barn
题解 P2701 [USACO5.3]巨大的牛棚Big Barn