时间限制 : 5000 MS   空间限制 : 262144 KB
问题描述

Eyiz正在与邪恶的Dgdon战斗.

为了打败Dgdon,Eyiz决定召唤PhantasmDragon来帮助他.

但是,召唤PhantasmDragon需要搭建一个祭坛.祭坛可以视作一个 N × M的网格.网格从上往下数第 i 行,从左往右数第 j 列记作(i, j)  .

现在,Eyiz在网格的每个格子中放置了三种字符中的一种,召唤出PhantasmDragon的数量取决于三种字符的排列方式.具体的,数量等于满足以下条件的有序四元组(i, j, k, l)   的数量.

条件:(i, j) 位置上的字符为P, (i, l) 位置上的字符为H,(k, j)  位置上的字符为D.

Eyiz想知道一共能召唤出多少只PhantasmDragon.

输入格式

第一行有三个整数N,M,表示一个  的祭坛.

接下来N行,第i行给出一个长度为M的字符串,表示祭坛上第i行的字符.

输出格式

输出一行一个整数,表示一共能召唤出的PhantasmDragon的数量.

样例输入 1

3 4
PHDP
PDHH
DDDD

样例输出 1

3

样例输入 2

4 4
PPHH
PPHH
DDPH
DDDP

样例输出 2

17

提示

对于20%的数据N ≤ 100,M  ≤ 100.

对于50%的数据N ≤ 500,M ≤ 500.

对于100%的数据N ≤ 3000,M ≤ 3000. 数据没有梯度,OI需要信仰.

最新文章

  1. java 多线程 4 线程池
  2. 编译可在Android上运行的qemu user mode
  3. 回忆读windows 核心编程
  4. .tostring()格式化大全
  5. iOS 中的Certificate,Provisioning Profile 等在code singing中用到的信息
  6. kill 命令详解 系统信号
  7. 机器学习在 IT 运维管理中的必要性!
  8. 聊聊Dataguard的三种保护模式实验(上)
  9. struts2配置文件中action的name属性
  10. java动态绑定的情况分析
  11. YII CRUD 例子
  12. Java学习之旅基础知识篇:数组及引用类型内存分配
  13. bzoj 1084;vijos 1191 [SCOI2005] 最大子矩阵
  14. 如何关闭windows server2012 80端口
  15. ionic 项目中,ng-bind-html会过滤掉内嵌样式的问题
  16. c语言笔记 数组2
  17. Zookeeper集群方式安装
  18. 20145208 蔡野 《网络对抗》Exp5 MSF基础应用
  19. mysql插入中文时候编码问题
  20. CRLF与LF解析

热门文章

  1. git涨姿势(一)
  2. duid 配置监控
  3. Gorm 预加载及输出处理(一)- 预加载应用
  4. 内网渗透之跨边界传输 - LCX转发
  5. scrapy 在爬取过程中抓取下载图片
  6. Redis02——Redis内存数据如何保存到磁盘
  7. 前后端分离基于Oauth2的SSO单点登录怎样做?
  8. 树链剖分与倍增求LCA
  9. Python3 + requests + unittest接口测试
  10. ngzorro draw 第一次打开 ERROR TypeError: Cannot read property 'overlayElement' of undefined