首页 > 其他分享 >南沙信奥赛家教老师解题:1249:Lake Counting

南沙信奥赛家教老师解题:1249:Lake Counting

时间:2024-09-05 09:05:09浏览次数:1  
标签:Node .. int 信奥赛 Lake WW ..... ans 1249

 【题目描述】

题意:有一块N×M的土地,雨后积起了水,有水标记为‘W’,干燥为‘.’。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼?

【输入】

第一行为N,M(1≤N,M≤110)。

下面为N*M的土地示意图。

【输出】

一行,共有的水洼数。

【输入样例】

10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.

【输出样例】

3

 

#include <bits/stdc++.h>
using namespace std;
int d[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}} ;
char a[131][131];
int n,m,ans=0;
struct Node
{
	int x,y;
};
void bfs(queue<Node> q)
{
	while(!q.empty())
	{
		Node cur=q.front();
		q.pop();
		for(int i=0;i<8;i++)
		{
			int dx=cur.x+d[i][0];
			int dy=cur.y+d[i][1];
			if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&a[dx][dy]=='W') //a[dx][dy]一定要放在这里,否则可能越界 
			{
				a[dx][dy]='.';
				Node newNode={dx,dy};
				q.push(newNode);
			}
		}
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			cin>>a[i][j];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(a[i][j]=='W')
			{
				queue<Node> q;
				Node node={i,j};
				q.push(node);
				bfs(q);
				ans++;
			}
	cout<<ans;
	return 0;
}

 

标签:Node,..,int,信奥赛,Lake,WW,.....,ans,1249
From: https://www.cnblogs.com/nanshaquxinaosai/p/18397670

相关文章

  • 南沙信奥赛C++陈老师解一本通题:1341:【例题】一笔画问题
    ​ 题目描述】如果一个图存在一笔画,则一笔画的路径叫做欧拉路,如果最后又回到起点,那这个路径叫做欧拉回路。根据一笔画的两个定理,如果寻找欧拉回路,对任意一个点执行深度优先遍历;找欧拉路,则对一个奇点执行dfs,时间复杂度为O(m+n),m为边数,n是点数。【输入】第一行n,m,有n个点,m条......
  • 洛谷题单指南-常见优化技巧-唯一的雪花 Unique Snowflakes
    原题链接:https://www.luogu.com.cn/problem/UVA11572题意解读:本质上是要计算最长连续不重复子序列的长度,典型的双指针应用。解题思路:通过双指针来枚举子序列,右指针指向的元素每次记录元素出现的次数,可以借助hash数组h[]如果枚举到的元素出现次数超过1,则表示左、右指针之间的子......
  • 南沙信奥赛老师解一本通题:1410:最大质因子序列
    ​【题目描述】任意输入两个正整数m,n(1<m<n≤5000),依次输出m到n之间每个数的最大质因子(包括m和n;如果某个数本身是质数,则输出这个数自身)。【输入】一行,包含两个正整数m和n,其间以单个空格间隔。【输出】一行,每个整数的最大质因子,以逗号间隔。【输入样例】510【输......
  • 南沙信奥赛老师解一本通题: 1413:确定进制
    ​题目描述】  【输入】一行,包含三个整数p、q、r。p、q、r的所有位都是数字,并且1≤p、q、r≤1,000,000。【输出】一个整数:即使得p×q=r成立的最小的B。如果没有合适的B,则输出0。【输入样例】6942【输出样例】13 #include<bits/stdc++.h>usingnam......
  • 信奥赛一本通陈老师解题 1123:图像相似度
    ​【题目描述】给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。【输入】第一行包含两个整数m和n,表示图像的行数和列数,......
  • 信奥赛一本通陈老师解题 1128:图像模糊处理
    ​ 【题目描述】给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1.四周最外侧的像素点灰度值不变;2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。【输入】第一行包含两个整数n和m,表示图像包含像素......
  • 南沙区信奥赛CSP-J/S 陈老师解题:1350:【例4-11】最短网络(agrinet)
    ​ 【题目描述】农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一......
  • 南沙区信奥赛陈老师讲题:1237:求排列的逆序数
    【题目描述】在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n1,2,…,n的排列i1,i2,…,ini1,i2,…,in,如果其中存在j,kj,k,满......
  • Snowflake与Databricks:科技巨头之间的激烈竞争
      每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https://......
  • CF685B Kay and Snowflake
    思路从下往上处理每个子树的重心。对于任意点\(u\),其所在子树的中心一定在\(u\)和\(ans[to]\)之间,\(ans[to]\)是重儿子\(to\)的重心结点。对于任意一点\(u\),其所在子树的重心深度一定不大于\(ans[to]\)。代码假设一个结点\(u\)的子树大小为\(sz[u]\)。对于......