链接:https://www.nowcoder.com/acm/contest/142/F
来源:牛客网

题目描述

There's a beautiful garden whose size is n x m in Chiaki's house. The garden can be partitioned into n x m equal-sized square chunks. There are some kinds of flowers planted in each square chunk which can be represented by using lowercase letters.
However, Chiaki thinks the garden is not beautiful enough. Chiaki would like to build a water pool in the garden. So that the garden would look like symmetric (both horizontally and vertically). The water pool is a rectangle whose size is p x q and the center of the water pool is also the center of the garden.
Something else important you should know is:

  • n, m, p and q are all even.
  • p is always less than n.
  • q is always less than m.
  • The borders of the water pool are parallel to the border of garden.

Chiaki would like to know the number of different pairs of (p, q) she can choose.

输入描述:

  1. There are multiple test cases. The first line of input contains an integer T (1 T 100) indicating the number of test cases. For each test case:
    The first line contains two integers n and m (1 n, m 2000, n and m are even) -- the size of the garden. For next n lines, each line contains m characters showing the garden. It is guaranteed that only lowercase letters will appear.

输出描述:

  1. For each test case, output an integer indicating the number of choices to build the water pool.

输入例子:
  1. 3
  2. 6 8
  3. acbbbbca
  4. dcaccacd
  5. cdaddadc
  6. cdaddadc
  7. dcaccacd
  8. acbbbbca
  9. 6 8
  10. acbcbbca
  11. dcaccacd
  12. cdaddadc
  13. cdaddadc
  14. dcaccacd
  15. acbbbbca
  16. 6 8
  17. acbbbbca
  18. dcadcacd
  19. cdaddadc
  20. cdaddadc
  21. dcaccacd
  22. acbbbbca
输出例子:
  1. 6
  2. 0
  3. 3

-->

示例1

输入

  1. 3
  2. 6 8
  3. acbbbbca
  4. dcaccacd
  5. cdaddadc
  6. cdaddadc
  7. dcaccacd
  8. acbbbbca
  9. 6 8
  10. acbcbbca
  11. dcaccacd
  12. cdaddadc
  13. cdaddadc
  14. dcaccacd
  15. acbbbbca
  16. 6 8
  17. acbbbbca
  18. dcadcacd
  19. cdaddadc
  20. cdaddadc
  21. dcaccacd
  22. acbbbbca

输出

  1. 6
  2. 0
  3. 3
  4.  
  5. 题意:在一个n*m的花园,我们想要这个花园变得更加完美,也就是行对称,列对称,但是花园开始可能是不对称,也可能对称,
    中间我们可以把中间的花铲走挖一个p*q池子,花园的中心就是池子的中心,来使花园看上去对称,问挖池子的方法有多少个,
    而且n,m,p,q都是偶数,p<n q<m
  6.  
  7. 思路:因为我们要使花园看上去对称,我们就去找从0开始最近的不对称的点在哪,行列分别去找,然后我们的池子必须涵盖最近的点,如果我们把
    最近的错误点盖住就可以满足了,然后再看最近的点和边界相差多少,行列间隔的距离相乘就是答案,因为我没扩展的时候有x个,我们延伸两个的时候
    ,又有x
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N = 2E3 + ;
  4. string s[N];
  5. int a[N], b[N];
  6. int main()
  7. {
  8. ios::sync_with_stdio(false), cin.tie();
  9. int T;
  10. cin >> T;
  11. while(T--)
  12. {
  13. int n, m;
  14. cin >> n >> m;
  15. for(int i = ; i < n; i++)
  16. {
  17. cin >> s[i];
  18. }
  19. int num1 = , num2 = ;
  20. for(int i = ; i < n/; i++)//这里我们直接用num1作间隔,然后直接匹配字符串是否相等,实际上是匹配了列上的字符是否对称
  21. {
  22. if(s[i] == s[n-i-])
  23. {
  24. num1++;
  25. }
  26. else
  27. {
  28. break;
  29. }
  30. }
  31. for(int i = ; i < m/; i++)//因为行的字符不能直接用字符串相等,所以我们判断下回文
  32. {
  33. int flag = ;
  34. for(int j = ; j < n; j++)
  35. {
  36. if(s[j][i] != s[j][m-i-])
  37. {
  38. flag = ;
  39. break;
  40. }
  41. }
  42. if(flag)
  43. {
  44. num2++;
  45. }
  46. else
  47. {
  48. break;
  49. }
  50. }
  51. if(num1 == || num2 == )
  52. {
  53. cout << << endl;
  54. }
  55. else
  56. {
  57. if(num1* == n) num1--;//如果到了边界减一,我们不能把花园边界挖掉
  58. if(num2* == m) num2--;
  59. cout << num1*num2 << endl;//最终答案
  60. }
  61. }
  62.  
  63. }
  1. 主要思路:模拟+贪心

牛客多校第四场 F Beautiful Garden的更多相关文章

  1. 牛客多校第三场 F Planting Trees

    牛客多校第三场 F Planting Trees 题意: 求矩阵内最大值减最小值大于k的最大子矩阵的面积 题解: 矩阵压缩的技巧 因为对于我们有用的信息只有这个矩阵内的最大值和最小值 所以我们可以将一 ...

  2. 牛客多校第四场sequence C (线段树+单调栈)

    牛客多校第四场sequence C (线段树+单调栈) 传送门:https://ac.nowcoder.com/acm/contest/884/C 题意: 求一个$\max {1 \leq l \le ...

  3. 2019牛客多校第八场 F题 Flowers 计算几何+线段树

    2019牛客多校第八场 F题 Flowers 先枚举出三角形内部的点D. 下面所说的旋转没有指明逆时针还是顺时针则是指逆时针旋转. 固定内部点的答案的获取 anti(A)anti(A)anti(A)或 ...

  4. 牛客多校第五场 F take

    链接:https://www.nowcoder.com/acm/contest/143/F来源:牛客网 题目描述 Kanade has n boxes , the i-th box has p[i] ...

  5. 牛客多校第五场 F take 期望转化成单独事件概率(模板) 树状数组

    链接:https://www.nowcoder.com/acm/contest/143/F来源:牛客网 Kanade has n boxes , the i-th box has p[i] proba ...

  6. 2019牛客多校第四场 I题 后缀自动机_后缀数组_求两个串de公共子串的种类数

    目录 求若干个串的公共子串个数相关变形题 对一个串建后缀自动机,另一个串在上面跑同时计数 广义后缀自动机 后缀数组 其他:POJ 3415 求两个串长度至少为k的公共子串数量 @(牛客多校第四场 I题 ...

  7. 2019牛客多校第四场 A meeting

    链接:https://ac.nowcoder.com/acm/contest/884/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言10485 ...

  8. 牛客多校第四场 G Maximum Mode

    链接:https://www.nowcoder.com/acm/contest/142/G来源:牛客网 The mode of an integer sequence is the value tha ...

  9. 2019年牛客多校第四场 B题xor(线段树+线性基交)

    题目链接 传送门 题意 给你\(n\)个基底,求\([l,r]\)内的每个基底是否都能异或出\(x\). 思路 线性基交板子题,但是一直没看懂咋求,先偷一份咖啡鸡板子写篇博客吧~ 线性基交学习博客:传 ...

随机推荐

  1. 数据库SQLserver(课本)

    一.SQL server的部署 1.数据库的基本概念 数据库通常是一个由行和列组成的二维表 数据表中的行通常叫做记录或元祖 数据表中的列通常叫做字段或属性 2.主键和外键 主键:定义主键可以保证数据的 ...

  2. Northcott Game HDU - 1730

    Tom和Jerry正在玩一种Northcott游戏,可是Tom老是输,因此他怀疑这个游戏是不是有某种必胜策略,郁闷的Tom现在向你求救了,你能帮帮他么? 游戏规则是这样的: 如图所示,游戏在一个n行m ...

  3. apache2反向代理

    1.安装 Apache2 sudo apt-get install apache2 2.重启服务器 sudo /etc/init.d/apache2 restart 3.虚拟主机配置 启用这几个模块 ...

  4. csrf漏洞

    漏洞原理:csrf全名为跨站请求伪造,是一种对网站的恶意利用,虽然听起来和xss很像,但是它们俩还是有很大的区别的.csrf是通过伪造来自受信任用户的请求来利用受信任的网站. 比如: 一个有csrf漏 ...

  5. 【实战问题】【2】Ambiguous mapping found. Cannot map 'xxController.Create' bean method

    正文: 启动项目时出现该报错. 原因为:在controller中url映射出现重复,@RequestMapping(value = "user/create"). 解决方案为:全局 ...

  6. 在Shell中使用alias

    以前在Linux跳机上登录其他服务器(ssh IP),为了方便,把很多服务器的IP和业务名称touch到了用户主目录下,这样方便了好多,每次ls -l 出来下就可以了,然后复制,粘贴就方便了.如下图. ...

  7. Js replace() 方法笔记

    最近捣鼓着学习Js,发现replace()真的很有用,替换功能杠杠的棒. 接下来看看我遇到的问题: 有两个随机给出的字符串,字符串1'xxxxxx',字符串2'====T'(这两个用作示例,其他为随机 ...

  8. zookeeper 选举和同步

    节点状态: // org.apache.zookeeper.server.quorum.QuorumPeer.ServerState public enum ServerState { LOOKING ...

  9. 使用深度学习检测TOR流量——本质上是在利用报文的时序信息、传输速率建模

    from:https://www.jiqizhixin.com/articles/2018-08-11-11 可以通过分析流量包来检测TOR流量.这项分析可以在TOR 节点上进行,也可以在客户端和入口 ...

  10. JDK动态代理源码分析

    先抛出一个问题,JDK的动态代理为什么不支持对实现类的代理,只支持接口的代理??? 首先来看一下如何使用JDK动态代理.JDK提供了Java.lang.reflect.Proxy类来实现动态代理的,可 ...