博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「LibreOJ β Round #4」框架
阅读量:5285 次
发布时间:2019-06-14

本文共 859 字,大约阅读时间需要 2 分钟。

题目描述

有一个n×m的矩形框架,但其中有些边被删除了。qmqmqm想知道剩余部分中还有多少完整的正方形。只有当一个正方形的每一条边均被保留下来,这个正方形才是完整的。

输入格式

输入第一行包含两个正整数n,m

之后n行,每行m−1个空格隔开的整数为0或1,表示横向边的存在情况。

之后n−1行,每行m个空格隔开的整数为0或1,表示竖向边的存在情况。

输出格式

输出一行一个整数表示剩余完整正方形的个数。

样例

样例输入

3 31 10 11 11 1 11 0 1

样例输出

2 预处理每个方格上边往右最多能延伸的长度,每个方格左边往下最多能延伸的长度
枚举每一个小方格作为正方形的左上角 从边长1开始扩展,扩展到不能在扩展 时间复杂度:O(n^3 / w)
 
#include
#define N 1001using namespace std;int n,m;int trans[N][N],erect[N][N];int left[N][N],up[N][N];void init(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j
=k && left[i][j]>=k ) { if(up[i+k][j]>=k && left[i][j+k]>=k) ans++; k++; } } printf("%d",ans);}int main(){ init(); solve();}

 

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7468736.html

你可能感兴趣的文章
Linux中防火墙centos
查看>>
[JS]递归对象或数组
查看>>
linux sed命令
查看>>
程序存储问题
查看>>
优雅地书写回调——Promise
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
css & input type & search icon
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
MetaWeblog API Test
查看>>
c# 文件笔记
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
线程池的概念
查看>>