Codeforces Round #423 B. Black Square
来源:互联网 发布:mac dock栏 图标合并 编辑:程序博客网 时间:2024/05/17 10:03
题目网址: Codeforces Round #423 B. Black Square
题意分析:
题目给出 n*m个格子, 涂黑色或白色. 要求将黑色块涂成一个正方形区域,不包含白色块, 若不能这么做, 则输出-1.若能, 输出最少需要涂成黑色的次数
- 用变量t记录黑色块出现的最上方
- 用变量l记录黑色块出现的最左边
- 用变量r记录黑色块出现的最右边
- 用变量b记录黑色块出现的最下方
- 用cnt记录当前出现的黑色块数
- 求出当前横向方向距离 col = r-l
- 求出当前纵向方向距离 row = b-t
- col, row 较大者则为正方向的边长len
- 此时判断len 会不会越界, 即 大于n 或 大于 m
- 会则输出 -1, 不会则 len*len - cnt即为所求.
- 注意没有黑色方块出现时, 结果 为 1
代码:
#include <iostream>using namespace std;const int SIZE = 105;char sheet[SIZE][SIZE];int main(int argc, char const *argv[]){ int n, m; while (~scanf("%d %d", &n, &m)) { getchar(); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { scanf("%c", &sheet[i][j]); } getchar(); } int t = SIZE, l = SIZE, r = -1, b = -1; int cnt = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { if(sheet[i][j] == 'B') { ++cnt; t = min(t, i); l = min(l, j); r = max(r, j); b = max(b, i); } } } int row = abs(b - t) + 1, col = abs(r - l) + 1; int len = max(row, col); if(cnt == 0) { printf("1\n"); } else if(len > n || len > m) { printf("-1\n"); } else { printf("%d\n", len*len - cnt); } } return 0;}
阅读全文
1 0
- Codeforces Round #423 B. Black Square
- Codeforces Round #423 B. Black Square
- Codeforces Round #423 (Div. 2) B. Black Square(思路)
- Codeforces Round #423 (Div. 2) B. Black Square
- Codeforces #423-Div. 2-B. Black Square
- Codeforces Round #423 (Div. 2) B Black Square 黑色正方形 思维题
- CodeForces 828B Black Square
- Codeforces 828 B Black Square
- 423B. Black Square
- CodeFroces Round 423 B. Black Square(暴力枚举)
- Codeforces Round #247 (Div. 2)a.Black Square,b.Shower Line,c.k-Tree前三题
- codeforces 828B. Black Square(水题)
- Codeforces #828B: Black Square 题解
- Codeforces Round #122 (Div. 2) B. Square
- Codeforces Round #247 (Div. 2) - A. Black Square
- Codeforces Round #247(Div. 2) A. Black Square 水题
- Codeforces828 B. Black Square
- B. Black Square
- Spring:IoC 用法(五、混合配置用法)
- String常量池
- 修改AlertDialog的宽高大小,Button的字体颜色等
- Linux查看MySQL的安装路径
- 如何在tomcat下部署php
- Codeforces Round #423 B. Black Square
- CSS多行文字垂直居中的方法
- spring实现定时器功能
- POJ 2431-Expedition(优先队列)
- J2EE进阶之schema约束,JAXP的SAX解析,DOM4J的解析,XPATH的支持 七
- 设计模式(05) 原型模式
- Spring基础_学习笔记
- 为什么要用PLSQL
- 如何从node开源库下载安装未发布的最新版本node