Content

有一张 \(n\times m\) 的地图,其中,\(\texttt{P}\) 代表小猪,\(\texttt{W}\) 代表狼。如果狼的上下左右有一头以上的小猪,那么它会吃掉其中相邻的任意一头小猪(此过程不再重复)。求有多少头小猪会被狼吃掉。

数据范围:\(1\leqslant n,m\leqslant 10\)。

Solution

如果 \(n,m\) 的范围很大,那么 @123456zmy 巨佬的 \(\texttt{Dinic}\) 算法无疑是一个绝佳的选择。

然而,这题目中 \(n,m\) 的范围实在小到可怜,我们为什么不直接暴力模拟呢?如果仔细看题的话不难发现,这道题目实质上就是想问你有多少匹狼能够吃到小猪。所以,我们可以记录下来每一匹狼的位置,然后遍历每个狼的上下左右是否会有小猪,有的话那么这匹狼就能够吃到一头小猪,记录答案之后输出就好了。

Code

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std; const int dx[4] = {0, 0, -1, 1};
const int dy[4] = {-1, 1, 0, 0};
int n, m, xwolf[107], ywolf[107], cnt, ans;
char s[17][17]; int main() {
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; ++i) {
scanf("%s", s[i] + 1);
for(int j = 1; j <= m; ++j)
if(s[i][j] == 'W') xwolf[++cnt] = i, ywolf[cnt] = j;
}
for(int i = 1; i <= cnt; ++i)
for(int j = 0; j < 4; ++j)
if(s[xwolf[i] + dx[j]][ywolf[i] + dy[j]] == 'P') {
ans++;
break;
}
printf("%d", ans);
return 0;
}

最新文章

  1. django 操作 下载 excel xls xlsx csv
  2. 弃用的异步get和post方法之Block方法
  3. Hark的数据结构与算法练习之奇偶排序
  4. MSP430矩阵及独立键盘
  5. OpenGL列主元矩阵的运算
  6. 使用excel微调button调整日期
  7. HDU2504:又见GCD
  8. C#类的学习
  9. riot.js教程【四】Mixins、HTML内嵌表达式
  10. 服务器禁止ping
  11. VS Code &amp; MacOS &amp; Zsh
  12. timestamp 与 nonce 防止重放攻击
  13. 百度地图API密钥
  14. MySQL 5.7.9版本sql_mode=only_full_group_by
  15. 648. Replace Words 替换成为原来的单词
  16. hdu2642二维树状数组单点更新
  17. 大数据入门第二十天——scala入门(二)scala基础02
  18. 远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
  19. BZOJ 2424 订货 最小费用流
  20. Curator 基本API

热门文章

  1. C语言下的Led灯
  2. bean注解
  3. Windows快捷键及cmd打开方式
  4. C# 将Excel转为PDF时自定义表格纸张大小
  5. [LCT学习时的一些笔记]
  6. bzoj4036 / P3175 [HAOI2015]按位或
  7. Oracle——listener数据库监听 lsnrctl
  8. Excel-vlookup内部能不能用函数?(即内部嵌套函数)
  9. No.1 R语言在生物信息中的应用——序列读取及格式化输出
  10. (转载)SQL Server 2008 连接JDBC详细图文教程