zoukankan      html  css  js  c++  java
  • Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) B. Black Square

    题意:问是否可以形成一个全黑正方形

    思路:可以找出正方形的边,然后判断下这个矩阵是否容得下,n,m都比边短,比赛的时候写麻烦了,还去找了这个正方形究竟在哪个位置,这样的话得考虑很多情况,不如就边*边-黑子的总数

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N=2e5+10;
     5 char a[102][102];
     6 int main(){
     7     int n,m;
     8     scanf("%d%d",&n,&m);
     9     for(int i=1;i<=n;i++){
    10         scanf("%s",a[i]+1);
    11     }
    12     int hl=100000,hr=0,ll=100000,lr=0;
    13     int xx=0;
    14     for(int i=1;i<=n;i++){
    15         for(int j=1;j<=m;j++){
    16             if(a[i][j]=='B'){
    17                 hr=max(hr,j);
    18                 hl=min(hl,j);xx++;
    19             }
    20         }
    21     }
    22     for(int j=1;j<=m;j++){
    23         for(int i=1;i<=n;i++){
    24             if(a[i][j]=='B'){
    25                 lr=max(lr,i);
    26                 ll=min(ll,i);
    27             }
    28         }
    29     }
    30     int len=max(hr-hl+1,lr-ll+1);
    31     if(xx==0){
    32         cout<<1<<endl;return 0;
    33     }
    34     if(len*len>n*m||len>n||len>m){
    35         cout<<-1<<endl;
    36     }
    37     else cout<<len*len-xx<<endl;
    38 
    39 }
  • 相关阅读:
    杭电1058
    动态规划之背包模版
    按字典序依次打印只由1~n组成的n位数
    杭电1029
    杭电1257
    杭电2191
    杭电1114
    杭电2602
    南阳975
    杭电2138
  • 原文地址:https://www.cnblogs.com/hhxj/p/7158061.html
Copyright © 2011-2022 走看看