生日礼物(题解)

编程入门 行业动态 更新时间:2024-10-27 00:33:12

生日礼物(<a href=https://www.elefans.com/category/jswz/34/1769599.html style=题解)"/>

生日礼物(题解)

题目描述


  10月11日是MM的生日,Matrix67打算自己DIY一些抱枕送给MM。Matrix67手中有一块矩形花布,花布分成了M x N个小格子,有些格子的花色相同,有些格子的花色不同。为了使最终成品更美观,Matrix67希望用于DIY的布匹都是正方形的,并且满足布匹花色上下对称且左右对称。为此,他希望能计算出这块花布里一共包含有多少个上下对称且左右对称的小正方形。

  举例来说,Matrix67手中的花布大小为6 x 4,上面共有5种花色:

ABACDA

DCDEAA

ABABAA

DDCBBA

  则这块布里一共有26个上下对称且左右对称的正方形,其中包括最左上角的3x3正方形、右边4个A组成的2x2正方形,当然还有24个1x1的小正方形。

输入格式


第一行输入两个用空格隔开的正整数M,N,表示Matrix67手中的格子布分为M行N列。

  以下M行每行N个字符,描述布匹的花色。我们用26个大写字母来区别不同的花色,相同的字母代表相同的花色,不同的字母代表不同的花色。

输出格式


输出在Matrix67的格子布中切出一块花色左右对称且上下对称的正方形共有多少种方案。

样例输入


4 6
ABACDA
DCDEAA
ABABAA
DDCBBA

样例输出


26

Solution


首先对于一条边来说,它的长度分偶数与奇数的情况,对于偶数来说,他是没有对称中心的,所以要分情况讨论。

首先我们先预处理出每一个格子对于横向和纵向所能拓展的最长长度。时间复杂度是 O(n

更多推荐

生日礼物(题解)

本文发布于:2024-03-14 20:44:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1737292.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:题解   生日礼物

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!