小白月赛86 D.dfs 问图中有多少个长方形,正方形也算长方形,并且每个长方形都是当前区域最大的。 判断长方形可以计算连通块面积s,以及横坐标之差最大值mx,纵坐标之差最大值my,如果mx*my=s则是长方形。 int xm[4]={1,0,-1,0}; int ym[4]={0,-1,0,1}; int mxx,mxy,mnx,mny,sum; void dfs(int x,int y,int n,int m){ vis[x][y]=1; sum+=1; mxx=max(mxx,x); mxy=max(mxy,y); mnx=min(mnx,x); mny=min(mny,y); rep(...