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 }
  • 相关阅读:
    Java.Io 初步了解
    Java 对象序列化与反序列化
    Java
    Java
    Java
    实现文件拷贝
    Java
    Java 国际化标准程序实现
    【C#】分享带等待窗体的任务执行器一枚
    解决64位Windows2003程序字体很小的问题
  • 原文地址:https://www.cnblogs.com/hhxj/p/7158061.html
Copyright © 2011-2022 走看看