博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XDOJ1327
阅读量:5330 次
发布时间:2019-06-14

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

XDOJ1327

题目描述

第七兽分为四个亚种,我们把它们记为 A, B, C, D。每只兽需要至少一个格子作为自己的领地。如果两只相邻的兽是一个亚种的,它们会融合成一只兽,这只兽将会占据以前两只兽的领地。 
珂朵莉想问威廉,在一个 n * m 的 铺满第七兽的四个亚种 的矩形里面,到底有多少只第七兽的四个亚种。

输入

第一行包括两个数 n, m, 表示这个矩形的大小。 
剩下行描述了这个矩形内兽的分布情况。

输出

输出一行四个数,表示第七兽 亚种 A, B, C, D 的个数,每两个数之间有一个空格。

样例输入

4 7DDDDDDDDABABADDBACACDDDDDDDD

样例输出

5 3 2 1

示例代码

#include 
#include
#define N 55using namespace std;char data[N][N];void dfs(int x,int y,char s){ if(data[x][y]==s) { data[x][y] = 'E'; dfs(x+1,y,s); dfs(x-1,y,s); dfs(x,y+1,s); dfs(x,y-1,s); }}int main(){ int m,n; cin >> m >> n; int resu = 0; memset(data,0,sizeof(data)); for(int i = 1 ; i <= m ;i++) for(int j = 1 ; j <=n ;j++) cin >>data[i][j]; for(int i = 1 ; i <= m ;i++) for(int j = 1 ; j <=n ;j++) if(data[i][j]=='A') dfs(i,j,'A'),resu++; cout << resu << " "; resu = 0; for(int i = 1 ; i <= m ;i++) for(int j = 1 ; j <=n ;j++) if(data[i][j]=='B') dfs(i,j,'B'),resu++; cout << resu << " "; resu = 0; for(int i = 1 ; i <= m ;i++) for(int j = 1 ; j <=n ;j++) if(data[i][j]=='C') dfs(i,j,'C'),resu++; cout << resu << " "; resu = 0; for(int i = 1 ; i <= m ;i++) for(int j = 1 ; j <=n ;j++) if(data[i][j]=='D') dfs(i,j,'D'),resu++; cout << resu ; return 0;}

总结

笔者的代码通常长度上比较短,而且没有无用头文件,总体来说,这道题是一道比较常见的dfs,这道题据说用队列写也很简单,笔者有空尝试一下,稍后代码附上。

PS:这倒是暑训签到题,题号为B,笔者会尽力在8.1前完成其他题解。

转载于:https://www.cnblogs.com/ronnielee/p/9495161.html

你可能感兴趣的文章
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
apache自带压力测试工具ab的使用及解析
查看>>
加固linux
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
字符串类型的相互转换
查看>>
基础学习:C#中float的取值范围和精度
查看>>
web前端面试题2017
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
关于 linux 的 limit 的设置
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>