CF1028A Find Square 题解

· · 题解

可能更好的食用体验 | 题目传送门 | 我的其他题解

这道题的思路很明显:找到黑色矩形的左上角和右下角的坐标,取它们的平均点即为中心。

#include<bits/stdc++.h> 
using namespace std; 
int n,m,l,u,r,d;//left,up,right,down
char ch; 
int main() 
{ 
    cin>>n>>m;l=u=1<<30; 
    for(int i=1;i<=n;i++) 
        for(int j=1;j<=m;j++) 
        { 
            cin>>ch; 
            if(ch=='B') 
            { 
                u=min(u,i),l=min(l,j);//u和l分别取最先出现B的i、j
                d=max(d,i),r=max(r,j);//d和r分别取最后出现B的i、j
            } 
        } 
    cout<<(u+d)/2<<' '<<(l+r)/2;//取平均点
    return 0; 
} 

{\color{Black}\text{xt\_\_}} 温馨提示:

{\color{White}\colorbox{#AD8800} {题解千万条,理解第一条。直接粘题解,棕名两行泪。}}